Hi!

> On 3 Dec 2014, at 21:40, Robert Stoll <p...@tutteli.ch> wrote:
> 
> Heya, 
> 
> 
> 
> I would like to know If it is somehow possible to overload existing functions 
> by extensions. And if it is possible, are
> there already some extension doing it?

Possibly in an extension, maybe. But as a weakly-typed, dynamic, reflective 
language, overloading of functions is both a bad idea (unpredictable program 
execution) and unnecessary (types can be checked at runtime, optional 
parameters exist). I also don't think overloading of functions is a good idea 
generally, it leads to horrible APIs where there are 28 different versions of a 
function each taking differently-typed arguments in different orders. I am glad 
PHP largely lacks this madness, it makes it an easier language to read and to 
write. Overloading isn't needed: use optional parameters, a named options 
associative array, or check argument types within the function. If what you're 
doing doesn't fit into those categories, maybe you need to make a separate 
function.

> I am not talking about the magic __call function. I am talking about 
> something like: let's assume GMP has overloaded the
> function "abs" and therefore one can write:
> $n = gmp_init(-12345678901234567890);
> abs($n+ 2);  // instead of using gmp_abs
> 
> 
> 
> I know that GMP has overloaded operators so it doesn't seem so far that 
> overloading functions is possible as well.

Being able to change APIs provided by other libraries from your library sounds 
like a bad idea.

If you just want abs() to work on bignums, my Big Integer Support RFC would 
handle that. :)

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

Reply via email to