Рассмотрим этот сценарий:
if (strpos($string, $substring)) { /* found it! */ }
Если $substring
найден в начале $string
, возвращаемое значение равно 0.
К сожалению, внутри if это значение равно false
, поэтому условие не выполняется.
Правильный способ справиться с этим будет:
if (false !== strpos($string, $substring)) { /* found it! */ }
Вывод:
false
всегда гарантированно ложно. Другие значения могут не гарантировать это. Например, в PHP 3 empty('0')
было true
, но позже оно изменилось на false
.