You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
jeherve
changed the title
Code modernization: Replace usage of strpos with str_starts_with https://core.trac.wordpress.org/ticket/58012
Code modernization: Replace usage of strpos with str_starts_withSep 5, 2023
Note we can only do that in contexts that run under WordPress. Code that is intended to be useful outside of WordPress won't have WordPress's polyfill.
Fixes#32854
str_starts_with() was introduced in PHP 8.0 to perform a case-sensitive check indicating if the string to search in (haystack) begins with the given substring (needle).
WordPress core includes a polyfill for str_starts_with() on PHP < 8.0 as of WordPress 5.9.
This commit replaces usage of strpos() with str_starts_with(), making the code more readable and consistent, as well as improving performance in PHP 8+ environments.
While strpos() is slightly faster than the polyfill on PHP < 8.0, str_starts_with() is noticeably faster on PHP 8.0+, as it is optimized to avoid unnecessarily searching along the whole haystack if it does not find the needle.
Note: this doesn't update uses of strpos() in a few places:
- The autoloader since it can be used outside of WordPress.
- The VaultPress plugin since it can still be used on older versions of WordPress, where the str_starts_with() shim did not exist.
Matching core change: https://core.trac.wordpress.org/ticket/58012
Source: https://core.trac.wordpress.org/ticket/58012
Let's follow Core's lead once Jetpack requires WordPress 6.3.
Primary issue: #32865
The text was updated successfully, but these errors were encountered: