Re: Re: __autoloading and functions

From: Date: Mon, 11 Sep 2006 17:40:29 +0000
Subject: Re: Re: __autoloading and functions
References: 1 2 3 4 5 6 7  Groups: php.internals 
Request: Send a blank email to internals+get-25615@lists.php.net to get a copy of this message
> >> Maybe a dump question, but wouldn't it get considered only, AFTER PHP has > >> found that the function does not exist? > > Technically, this can be done - i.e. engine can be patched so that > instead of throwing an error or refusing the call it would call > appropriate function which would allow for autoloading. > > However, I think autoloading functions if conceptually wrong. One rarely > keeps functions individually separated in different files (while this is > routinely happening - and is recommended - for classes). So, if you want > to autoload functions you would either have to build complex tables of > where each function lives or organize them in some well-defined modules. > Such modules are called "classes" in OO-speak Or "namespaces"... Or just plain "modules". Classes is not the only way to group things, and may not be the best (namespaces can typically be re-opened, so functions and classes belonging to a namespace can span several files, instead of everything having to be in _one_ file). >, so if you have a group of > functions that are united by purpose and you want to autoload - why not > to make a class out of them? Why? Besides the above, because you may want to be able to call a function like: f(); and not: SomeClassToWrapItAll::f(); ... Please, people: The availability of free (non-member) functions in PHP (as in C/C++) is one advantage it has over Java, where everything _has_ to be a class. So in Java, instead of being able to write "sqrt(<number>)", you have to write "Math::sqrt(<number>)". Always. And one small plea: If namespaces are added to PHP, please don't add something like C++'s "argument-dependent lookup": It has caused no end of problems in that camp. :) Regards, Terje

« previous php.internals (#25615) next »