While converting the functions inside string.c to the new parameter parsing 
API and doing some general cleanup, I've come across an interesting 
'feature'.

Three string functions: stristr(), strstr() and strpos() have peculiar way of 
handling non string values passed as 'needle'. Instead of converting the 
needle to a string they instead convert it to an integer and search for a 
character equivalent to that integer.
This behavior causes a problem such as strstr("abc123", 1) returning false 
rather then returning 123 as one may expect. Because this behavior is not 
documented, I believe we could safely change it back to the behavior listed 
in the manual and the one defined in the function's prototype.
The con of this approach is that it may break scripts that really on the 
undocumented behavior, therefor I propose that this change would only go into 
the 4.4/5.0 branch at which point people will expect small behavioral 
changes.

Ilia

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to