ID:               20681
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
-Bug Type:         Arrays related
+Bug Type:         Feature/Change Request
 Operating System: Win 2K SP3
 PHP Version:      4.2.3
 New Comment:

As it's been said enough that identity or equalness of two objects is
somewhat obscure in ZendEngine1, I don't see any reason to implement
this feature unless ZendEngine2 becomes ready for release versions.

So I'm reclassifying this report as a feature request in this point of
view.



Previous Comments:
------------------------------------------------------------------------

[2002-11-27 11:48:56] [EMAIL PROTECTED]

<?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().

------------------------------------------------------------------------

[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

Reply via email to