Edit report at https://bugs.php.net/bug.php?id=55246&edit=1
ID: 55246
User updated by: x11 at arturaz dot net
Reported by: x11 at arturaz dot net
Summary: instanceof does not complain even if class is never
defined
Status: Bogus
Type: Bug
Package: Compile Failure
Operating System: Ubuntu Linux
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
Yeah, autoloader should try to load the class and then, if unsuccessful - fail.
Seriously. I know that it's cool to have funny glitches in PHP like FOO
reverting to 'FOO' if it's undefined, but this?
Previous Comments:
------------------------------------------------------------------------
[2011-07-20 04:55:24] [email protected]
Think of autoloader, or other related tests. A warning or error here is not
welcome.
------------------------------------------------------------------------
[2011-07-20 04:34:57] x11 at arturaz dot net
How it's possibly useful to test if object is an instance of class which is not
even defined?
------------------------------------------------------------------------
[2011-07-20 04:33:47] [email protected]
That's the exact idea of instanceof to test something without getting noises.
------------------------------------------------------------------------
[2011-07-20 04:31:42] x11 at arturaz dot net
Description:
------------
PHP does not complain if you check for non-existant class with instanceof.
This provides space for subtle errors, like checking for DateRange when only
Date_Range class is defined.
Test script:
---------------
<?php
echo PHP_VERSION . "\n";
error_reporting(E_ALL);
class Foo {}
$a = new Foo;
// Notice that Bar class is never defined, however PHP does not complain about
missing class.
if ($a instanceof Bar) { echo "Should be an error\n"; }
else { echo "PHP fail\n"; }
Expected result:
----------------
Compiler error thrown saying that Bar was not found.
Actual result:
--------------
Nothing happens.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55246&edit=1