Только PHP str_pos достаточно странно, чтобы возвращать 0 / false, когда индекс не найден. Большинство считает версию PHP плохой реализацией.
int strpos ( string $haystack , mixed $needle [, int $offset= 0 ] )
//Returns the position as an integer. If needle is not found, strpos()
// will return boolean FALSE.
/*
Warning
function may return Boolean FALSE, but may also return a non-Boolean value which
evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more
information. Use the === operator for testing the return value of this function.
*/