You are wrong because __autoload() *is* called and you can load the class on the-fly. The only problem is if the class does not exist in your code base, in which case, your application should blow up!

Andi

At 07:44 AM 8/9/2005 +0200, Pierre-Alain Joye wrote:
On Mon, 08 Aug 2005 14:43:25 -0700
[EMAIL PROTECTED] (Andi Gutmans) wrote:

> I don't agree that instanceof on a class which doesn't exist
> should work. It doesn't do so in other languages (or at least not
> in Java/C++(dynamic_cast)) nor does it really seem to make a lot
> of sense and be useful. Sounds more like an edge case you have
> hit with some weird code which can probably be written
> differently.

You cannot compare PHP with Java and C++ in this case, sorry. They
work differently for known reason (compiled being one).

If you have a method, which could be a factory, or the behaviors
depends on which object it gets, you have now 2 choices:

- Accept to live with a possible fatal error

- Include all single classes you are going to check, even if you
  will use none of them.

The 3rd possibility, fix instanceof.

> Today, fetching of classes in the language is very generic, and
> they have to exist. I see very few cases where this would not be
> true if you are writing a regular application. In those few cases
> where you are doing something extremely weird, you can use
> reflection to introspect an object.

Agreed, that's fetch_class is not opportun for instanceof. My point
is not about the fetch_class is done but the way instanceof works.
Reflection is terribly overkilled for such a need, and slow.

> There is no way this would be changed for RC1 (or PHP 5.1)
> because it's a significant change which would affect many places
> and not only instanceof. I personally think it shouldn't be
> changed at all. If you're referencing classes/exceptions in your
> code that don't exist, then something is very bogus with your
> code. Don't use a NonExistantException if that could happen, use
> Exception...

Agreed here too, not related to instanceof though.


--Pierre

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

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

Reply via email to