Fork me on GitHub
a Sensio Labs Product

BoY42 (v3.15.1) edition

Rule modernize_strpos

Replace strpos() calls with str_starts_with() or str_contains() if possible.


Using this rule is risky

Risky if strpos, str_starts_with or str_contains functions are overridden.


Example #1

--- Original
+++ New
-if (strpos($haystack, $needle) === 0) {}
-if (strpos($haystack, $needle) !== 0) {}
-if (strpos($haystack, $needle) !== false) {}
-if (strpos($haystack, $needle) === false) {}
+if (str_starts_with($haystack, $needle)  ) {}
+if (!str_starts_with($haystack, $needle)  ) {}
+if (str_contains($haystack, $needle)  ) {}
+if (!str_contains($haystack, $needle)  ) {}

Rule sets

The rule is part of the following rule set:


Using the @PHP80Migration:risky rule set will enable the modernize_strpos rule.

The logo is © 2010-2022 Sensio Labs