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