ID: 20681
Comment by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Arrays related
Operating System: Win 2K SP3
PHP Version: 4.2.3
New Comment:
<?php
class A {
function A () {
}
}
class B {
function B () {
}
}
$g_b = new B ();
$g_array = array (
array ( new A () ),
array ( 'test' ),
array ( $g_b ) );
$g_key = array_search(array ( new A () ), $g_array);
var_dump($g_key);
$g_key = array_search(array ( $g_b ), $g_array);
var_dump($g_key);
$g_key = array_search(array ( 'test' ), $g_array);
var_dump($g_key);
?>
Seems to work as I exect it to:
int(0)
int(2)
int(1)
Also, the original example still produces warnings and doesn't find the
elements if you change the array_search() calls to in_array().
Previous Comments:
------------------------------------------------------------------------
[2002-11-27 11:41:45] [EMAIL PROTECTED]
array_search() does not seem to work when the needle is an object.
Sample code:
<?php
class A {
function A () {
}
}
class B {
function B () {
}
}
$g_b = new B ();
$g_array = array ( new A (), 'test', $g_b );
$g_key = array_search(new A (), $g_array);
var_dump($g_key);
$g_key = array_search($g_b, $g_array);
var_dump($g_key);
$g_key = array_search('test', $g_array);
var_dump($g_key);
?>
Output:
<br />
<b>Warning</b>: Wrong datatype for first argument in call to
array_search in <b>C:\dparks\Documents\html\tmp.php</b> on line
<b>17</b><br />
bool(false)
<br />
<b>Warning</b>: Wrong datatype for first argument in call to
array_search in <b>C:\dparks\Documents\html\tmp.php</b> on line
<b>20</b><br />
bool(false)
int(1)
Environment:
This is PHP 4.2.3 (binary from Zend or PHP.net) running on Apache
2.0.40 on Win 2K SP3.
Please email me if you would like me to run more tests, or try another
build (it may be awhile before I can try another build though --
someone else here had trouble with 4.3rc1 and I am behind schedule).
Thanks,
Daniel
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=20681&edit=1