[wp-trac] [WordPress Trac] #58012: Replace usage of strpos with str_starts_with

WordPress Trac noreply at wordpress.org
Tue May 2 15:43:18 UTC 2023


#58012: Replace usage of strpos with str_starts_with
---------------------------------------------+-----------------------------
 Reporter:  spacedmonkey                     |       Owner:  SergeyBiryukov
     Type:  enhancement                      |      Status:  closed
 Priority:  normal                           |   Milestone:  6.3
Component:  General                          |     Version:
 Severity:  normal                           |  Resolution:  fixed
 Keywords:  good-first-bug has-patch commit  |     Focuses:
---------------------------------------------+-----------------------------
Changes (by SergeyBiryukov):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"55703" 55703]:
 {{{
 #!CommitTicketReference repository="" revision="55703"
 Code Modernization: Replace usage of `strpos()` with `str_starts_with()`.

 `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 `0 === strpos( ... )` with `str_starts_with()` in
 core files, making the code more readable and consistent, as well as
 improving performance.

 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.

 Follow-up to [52039], [52040], [52326].

 Props spacedmonkey, costdev, sabernhardt, mukesh27, desrosj, jorbin,
 TobiasBg, ayeshrajans, lgadzhev, SergeyBiryukov.
 Fixes #58012.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/58012#comment:22>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list