Re: Re: __autoloading and functions

From: Date: Tue, 12 Sep 2006 05:03:48 +0000
Subject: Re: Re: __autoloading and functions
References: 1 2 3 4 5 6 7 8 9  Groups: php.internals 
Request: Send a blank email to internals+get-25628@lists.php.net to get a copy of this message
>On 9/11/06, Terje Slettebø <tslettebo@broadpark.no> wrote: >> 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. >Actually, Java recently added static import to deal with that very >annoyance.... ;) Right. Well, to me, having to wrap everything in a class, just because you don't have free functions, seems like more of a workaround than anything else, and the static import a "kludge" to make that less inconvenient (conceptually, it doesn't make a lot of sense to me to "import" some class's static members into a context...). Besides, it forces you to define everything in _one_ file (unless _that_ has been changed, as well). I'm reminded of that, after having learned Java at college, and taking up C++ again, after it, I had to "deprogram" myself of "Javaisms": I tended to use a class for everything, even if it made my design more complex and tighter coupled than necessary. For example, if I needed some functions that didn't naturally belong in a class (such as various "utility functions"), I'd wrap them as static members in a class called "Utility". When reading up on C++, again, I realised that this was absolutely not necessary: You could simply define them as free functions in a namespace called "utility"... That way, they may be called unqualified (if "imported" with "using"), and may span several files. Regards, Terje

« previous php.internals (#25628) next »