In PHP 8, a new set of string functions has been added, including the str_starts_with() function. This function can be used to determine whether a string begins with another string. Next, we will explore some new techniques on how to use this new function to make our development work more efficient and convenient.
First, let us understand the basic usage of str_starts_with() function. This function accepts two parameters, the first is the string to be judged, and the second is the string as the starting part. Returns true if the first string starts with the second string, false otherwise. For example:
$string = "hello world"; $startsWithHello = str_starts_with($string, "hello"); $startsWithBye = str_starts_with($string, "bye"); var_dump($startsWithHello); // true var_dump($startsWithBye); // false
Now let's start exploring some new techniques of str_starts_with() function.
In terms of natural sorting, we usually need to use the following code:
function naturalSort($a, $b) { return strnatcmp($a, $b); } usort($array, 'naturalSort');
However, if we want Some elements in a naturally sorted array start with a specific string (for example, "~"), and we may need to perform some special processing. At this time, we can use the str_starts_with() function to optimize, such as this:
function naturalSort($a, $b) { if (str_starts_with($a, '~') && !str_starts_with($b, '~')) { return 1; } elseif (!str_starts_with($a, '~') && str_starts_with($b, '~')) { return -1; } else { return strnatcmp($a, $b); } } usort($array, 'naturalSort');
This can reduce the number of calls to the strnatcmp() function during sorting, thereby improving efficiency.
In some cases, we need to filter out strings starting with specific characters from a string array so that Perform some subsequent processing on these strings. This function can be easily implemented using the str_starts_with() function. For example:
$array = ["apple", "banana", "orange", "pear"]; $filteredArray = array_filter($array, function($item) { return str_starts_with($item, "a"); }); var_dump($filteredArray); // ["apple"]
In the above code, we use the array_filter() function and an anonymous function to filter the array, and use the str_starts_with() function to determine whether each element starts with the character "a". The end result is a new array containing only strings starting with the character "a".
In some string replacement scenarios, we only need to replace those that start with a certain character or string part. Using the str_starts_with() function can help us achieve this function and make the replacement operation more concise and efficient. For example:
$string = "hello world"; $newString = str_starts_with($string, "hello") ? "goodbye" . substr($string, 5) : $string; echo $newString; // "goodbye world"
In the above code, we use the str_starts_with() function to check whether the string starts with "hello", and if so, use the substr() function to get the part after removing the first character, And add "goodbye" to the beginning. Otherwise, the original string is used directly.
Summary
The str_starts_with() function is a new function in PHP 8, which can help us process the beginning of a string more conveniently and efficiently. In this article, we show some new tricks for the str_starts_with() function, including optimizing natural ordering, filtering string arrays based on starting characters, and using them in string replacement. These techniques can help us better cope with the string processing needs in daily development and improve our work efficiency.
The above is the detailed content of New functions in PHP8: new tricks for str_starts_with(). For more information, please follow other related articles on the PHP Chinese website!