#36487 [Opn->Bgs]: object === same object mismatch
| From: | iliaa@php.net | Date: | Wed, 22 Feb 2006 15:42:40 +0000 |
| Subject: | #36487 [Opn->Bgs]: object === same object mismatch | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-93530@lists.php.net to get a copy of this message | ||
ID: 36487
Updated by: iliaa@php.net
Reported By: xxoes at nw7 dot de
-Status: Open
+Status: Bogus
Bug Type: *General Issues
Operating System: windows & linux
PHP Version: 5.1.2
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
For === to return true on object comparison both objects must be
instances of the same class and refer to the exact same internal
object.
Previous Comments:
------------------------------------------------------------------------
[2006-02-22 15:04:40] xxoes at nw7 dot de
This is not PHP-GTK related.
If you replace GtkObject with DOMElement you get the same result.
------------------------------------------------------------------------
[2006-02-22 14:33:03] xxoes at nw7 dot de
Description:
------------
Although the objects have the same object id after destruction, "==="
doesn't equal them any more.
I try:
$abc = new abc();
$obj = new bla();
and:
$abc = new abc();
$obj = new bla();
both the same result.
This does not happen when you remove "extends GtkObject" from the class
signature.
Reproduce code:
---------------
<?PHP
class bla extends GtkObject {
public $xparent;
function __construct() {
}
function __destruct() {
echo "bla::__destruct()\r\n";
$this->xparent->remove($this);
}
}
class abc {
function __destruct() {
echo "abc::__destruct()\r\n";
}
function put($obj) {
$this->obj = $obj;
$obj->xparent = $this;
}
function remove($obj) {
echo "Object matched?: ".($this->obj === $obj)."\r\n";
echo $this->obj." ".$obj."\r\n";
}
}
$abc = new abc();
$obj = new bla();
$abc->put($obj);
?>
Expected result:
----------------
That the operation $this->obj === $obj is true.
Actual result:
--------------
$this->obj and $obj mismatch.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=36487&edit=1