Edit report at https://bugs.php.net/bug.php?id=61326&edit=1

 ID:                 61326
 Updated by:         cataphr...@php.net
 Reported by:        aim at secoya dot dk
 Summary:            ArrayObject comparison
-Status:             Assigned
+Status:             Closed
 Type:               Bug
 Package:            SPL related
 Operating System:   Windows 7 x64
 PHP Version:        5.3.10
 Assigned To:        cataphract
 Block user comment: N
 Private report:     N

 New Comment:

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------
[2012-03-10 17:19:29] cataphr...@php.net

Automatic comment from SVN on behalf of cataphract
Revision: http://svn.php.net/viewvc/?view=revision&revision=324082
Log: - Fixed bug #61326 (ArrayObject comparison).

------------------------------------------------------------------------
[2012-03-08 15:23:57] aim at secoya dot dk

Description:
------------
When constructing ArrayObjects by passing arrays to their constructor 
subsequent 
object comparisons do not return the right result.

Only by using getArrayCopy, we get the proper result.

Test script:
---------------
<?php
$a = array();
$b = array();
$a[] = 0;
$b[] = 0;
echo '$a==$b                .. ';
var_dump($a==$b);
$b[] = 1;
echo '$b[] = 1; $a==$b      .. ';
var_dump($a==$b);
$a_o = new ModifiedArrayObject($a);
$b_o = new ModifiedArrayObject($b);
echo '$a_o==$b_o            .. ';
var_dump($a_o==$b_o);
echo '$a_o->compareTo($b_o) .. ';
var_dump($a_o->compareTo($b_o));


class ModifiedArrayObject extends ArrayObject {
        public function compareTo(ArrayObject $a) {
                $to = $a->getArrayCopy();
                return $this->getArrayCopy() == $to;
        }
}


Expected result:
----------------
$a_o == $b_o returns false.

Actual result:
--------------
$a_o == $b_o returns true.


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



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=61326&edit=1

Reply via email to