Refactoring strpos()

<?php

$a = 'cde';

if ( strpos($a, 'abc') === 0)       { /**/ }
// Replace with
if ( str_starts_with($a, 'abc'))    { /**/ }

if ( strpos($a, 'abc') !== 0)       { /**/ }
// Replace with
if ( !str_starts_with($a, 'abc'))   { /**/ }

?>

Converting an expression like strpos() === 0 to use str_starts_with() is simple and direct. However, caution is needed when the comparison involves a difference rather than equality. In such cases, replacing the functions isn’t a straightforward one-to-one substitution, as the logic and intent behind the original expression may change, leading to unexpected behavior if not handled carefully.

See Also

PHP Features

Last updated: 14 July 2026