Date: 12/24/00
- Next message: jmoore <email protected>: "[PHP-DEV] PHP 4.0 Bug #8409 Updated: in_array acting strange"
- Previous message: chrisv <email protected>: "[PHP-DEV] PHP 4.0 Bug #8408 Updated: example given raises php4 warning about use of &$errno and &$errstr"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
From: anil <email protected>
Operating system: OpenBSD
PHP version: 4.0.4
PHP Bug Type: Scripting Engine problem
Bug description: in_array acting strange
in_array() is acting very strange; here is the script I am using:
<?
$a = array('1.10','1.12.4.3','1.13.4.2');
var_dump($a);
if (in_array('1.1',$a)) echo '1.1 found without strict check';
if (in_array('1.1',$a, true)) echo '1.1 found with strict check';
?>
Output:
array(3) {
[0]=>
string(4) "1.10"
[1]=>
string(8) "1.12.4.3"
[2]=>
string(8) "1.13.4.2"
}
1.1 found without strict check
Now, '1.1' should never be found at all, since its not in the input string array, but it is found!
However, looking at the source code reveals an undocumented 'strict' argument, which when set to true, works correctly.
Two issues:
a) Could this extra parameter please be documented?
b) Why on earth does it match them as identical when it's not 'strict'? Do they revert to being evaluated in an integer context (the only way I can think off that 1.10 and 1.1 would be equivalent)
-- Edit Bug report at: http://bugs.php.net/?id=8409&edit=1-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>
- Next message: jmoore <email protected>: "[PHP-DEV] PHP 4.0 Bug #8409 Updated: in_array acting strange"
- Previous message: chrisv <email protected>: "[PHP-DEV] PHP 4.0 Bug #8408 Updated: example given raises php4 warning about use of &$errno and &$errstr"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

