ID:               39435
 Updated by:       [EMAIL PROTECTED]
 Reported By:      mp at webfactory dot de
-Status:           Open
+Status:           Closed
 Bug Type:         Class/Object related
 Operating System: any
 PHP Version:      5.2.0
 Assigned To:      pollita
 New Comment:

The function needs to be passed an object not a name of an 
object.


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

[2006-12-13 08:40:04] mp at webfactory dot de

Checked PHP 5.2.1-dev (cli) (built: Dec 13 2006 08:24:06).

var_dump(Iterator instanceof Traversable) now returns false, also with
non-builtin (userland) classes, but should be true.

var_dump("Iterator" instanceof Traversable) now gives an fatal error
"instanceof expects an object instance, constant given". It should
accept the first operand as a string just like is_subclass_of does and
check if the class named "Iterator" subclasses/implements the other
operand.

$x = "Iterator";
var_dump($x instanceof Traversable) returns false. If $x is not an
object but a string it might want to behave like the former case
(string constant)?

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

[2006-12-12 23:26:46] [EMAIL PROTECTED]

This bug has been fixed in CVS.

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.

This has been changed to throw a proper error message rather than the
uninformative one given.  Perhaps in future versions this can be
changed to allow constant strings giving the expected output, but not
currently.


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

[2006-11-08 18:26:52] [EMAIL PROTECTED]

Sara should have a patch as soon as she gets online

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

[2006-11-08 17:36:17] mp at webfactory dot de

Description:
------------
instanceof produces wrong results when the first operand is not an
object instance but a class name or a string containing a class name.


Reproduce code:
---------------
var_dump(Iterator instanceof Traversable);
var_dump("Iterator" instanceof Traversable); 

Expected result:
----------------
bool(true)
bool(true)

Actual result:
--------------
bool(false)

Fatal error: Invalid opcode 138/1/1. in ...


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


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

Reply via email to