Home  >  Article  >  Backend Development  >  New functions in PHP8: new tricks for str_starts_with()

New functions in PHP8: new tricks for str_starts_with()

PHPz
PHPzOriginal
2023-05-16 08:27:361290browse

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.

  1. Use str_starts_with() function to optimize natural sorting

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.

  1. Filter string array based on starting characters

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".

  1. Use str_starts_with() function in string replacement

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn