ID:               50558
 Updated by:       pierr...@php.net
 Reported By:      degeb...@php.net
-Status:           Open
+Status:           Closed
 Bug Type:         Class/Object related
 Operating System: Irrelevant
 PHP Version:      5.3.1
 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/.
 
Thank you for the report, and for helping us make PHP better.




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

[2009-12-25 01:35:58] s...@php.net

Automatic comment from SVN on behalf of pierrick
Revision: http://svn.php.net/viewvc/?view=revision&revision=292620
Log: Fixed bug #50558 (Broken object model when extending tidy)

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

[2009-12-23 10:43:41] degeb...@php.net

Description:
------------
When extending the class tidy (http://docs.php.net/class.tidy) with a
subtype MyTidy, the PHP engine fails type checks for MyTidy (probably
easier to explain using code).

This is inconsistent with normal behavior in the object model. is_a($o,
get_class($o)) should always be true if $o is an object, that is an
object should always be an instance of its own class.

Reproduce code:
---------------
<?php
class MyTidy extends tidy
{
    // foo
}

function doSomething(MyTidy $o) 
{
    var_dump($o);
}

$o = new MyTidy();

var_dump(is_a($o, get_class($o)), get_class($o));
doSomething($o);

Expected result:
----------------
bool(true)
string(7) "MyTidy"
object(MyTidy)#1 (2) {
  ["errorBuffer"]=>
  NULL
  ["value"]=>
  NULL
}

Actual result:
--------------
bool(false)
string(6) "MyTidy"
PHP Catchable fatal error:  Argument 1 passed to doSomething() must be
an instance of MyTidy, instance of tidy given, called in
/home/daniel/test.php on line 16 and defined in /home/daniel/test.php on
line 7

Catchable fatal error: Argument 1 passed to doSomething() must be an
instance of MyTidy, instance of tidy given, called in
/home/daniel/test.php on line 16 and defined in /home/daniel/test.php on
line 7


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


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

Reply via email to