At 06:53 PM 6/12/2002 +0100, Ivan Ristic wrote:
> > First of all I'd prefer it to call a predefined callback called
> > __autoload() if a class is not found.
>
>   I do not have a problem with the predefined name. However,
>   unserialize is already using the ini setting for the
>   same thing, and it would be a shame to introduce an
>   inconsistency.
>
>   Can we obey the ini setting if it is there, and call __autoload()
>   if it isn't (i.e. introduce "__autoload" as a default value for
>   the ini parameter)?

I was thinking __autoload() would be used everywhere including in 
unserialize. I think standardizing the callback is a good idea.



> > The second problem is that I don't see it working with nested classes.
> > Is it good enough to only have this work with classes in the global scope?
>
>   I am not really familiar with nested classes; is it because
>   you don't know the name of the file in which a nested class
>   is located? If so, I would say that trying to accommodate that
>   would be an overkill. In any case, the programmer using nested
>   classes can always write the __autoload() function that will
>   be smart enough.

The problem is that if you have MyClass1::MyClass2::MyClass3 then MyClass3 
is looked up in the result of MyClass2 being looked up in MyClass1. If the 
lookup fails I can't tell __autoload() the path. The only think I could do 
is possibly pass it the result of MyClass2 being looked up in MyClass1 and 
"MyClass3". The question is if people will manage to handle this. I think 
it might be complicated and it might be best not to go in this direction.

Andi


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

Reply via email to