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

 ID:                 61265
 Comment by:         jwalton at m3hc dot com
 Reported by:        manchokapitancho at gmail dot com
 Summary:            __autoload should know about traits
 Status:             Open
 Type:               Feature/Change Request
 Package:            Class/Object related
 PHP Version:        5.4.0
 Block user comment: N
 Private report:     N

 New Comment:

Actually, the ambiguous ones (i.e. is_a) do not call the autoload.


Previous Comments:
------------------------------------------------------------------------
[2012-03-26 22:04:42] phristen at yahoo dot com

Ok, my point is still valid though.

Imagine I used is_a($a, "A", true) instead.

------------------------------------------------------------------------
[2012-03-26 03:42:08] phpmpan at mpan dot pl

`instanceof` operator does not trigget class loading:
-----------------------------------------
class X {}
function __autoload($name) {
    echo "Loading $name...\n";
}
$x = new X();
if ($x instanceof X) {
    echo 'x is X';
}
if ($x instanceof NonExistingClass) {
    echo 'blarg';
}
-----------------------------------------
The same applies to argument types.

------------------------------------------------------------------------
[2012-03-25 17:10:13] phristen at yahoo dot com

This would certainly be a nice feature.
However, keep in mind that it is not always possible to tell whether something 
is a class or an interface.
For example, when doing something like this, we can't tell whether 'A' is an 
interface or a class:

if ($a instanceof A) {

}

------------------------------------------------------------------------
[2012-03-08 14:39:39] manchokapitancho at gmail dot com

Yes, there is a use case.
Currently, I use a workaround but in general, the idea behind is that after I 
locate the file, corresponding to the class name being autoloaded, 
I require_once the file and then check if the class is really inside 
(class_exists). As of 5.4, class_exists returns false for traits and I have to 
use 
class_exists || trait_exists. Not a big deal, really, but it is still possible 
to 
have different paths for classes (ex. /classes) and different one for traits 
(/traits).

------------------------------------------------------------------------
[2012-03-08 13:26:06] shiranai7 at hotmail dot com

Sorry.. it should say "It is NOT a critical feature" instead of "NOW".

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=61265


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

Reply via email to