On Aug 9, 2005, at 5:56 AM, Pierre-Alain Joye wrote:

On Tue, 9 Aug 2005 10:15:15 +0200 (CEST)
[EMAIL PROTECTED] (Derick Rethans) wrote:


On Tue, 9 Aug 2005, Pierre-Alain Joye wrote:


This technique is already frequently used to cope with lazy
loaded code, which even with cached code compilers, is pretty
damn efficient in a scripted language (less IO operations,
less parsing, less memory...)

It is not about the fact we 'can' load the class, but that we
dont 'want' to load the class.. - it's a waste of resources,
memory, cpu etc. just for the sake of CS perfection..

Last time I looked PHP was about getting thing done
efficiently, not about giving your university professor a
woody... ;)


That's my point. The autoload magic (crap? :)) is not in cause
here. If you _test_ something, you do not expect the test
operator to abort your execution (fatal error).


But you're testing for something that you *know* that can not
exist in your code base. That is a broken test, so it should
throw a fatal error.


function wrapperFoo($obj) {
    if (is_a($obj, 'MyFoo') {
    }
    ... other tests  ....
}

worked before is_a was deprecated.


function wrapperFoo($obj) {
    if ($obj instanceof MyFoo) {
    }
}

To duplicate the old semantic now you need to do:

if(class_exists('MyFoo') && $obj instanceof MyFoo) { }

which is definitely uglier than

if(is_a($obj, 'MyFoo')) {}

George

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to