You can do this in Python, but is it possible in PHP?
>>> def a(): print 1
...
>>> def a(): print 2
...
>>> a()
2
No, it is not possible to do this as you might expect.
From the manual:
PHP does not support function overloading, nor is it possible to undefine or redefine previously-declared functions.
HOWEVER, You can use runkit_function_redefine and its cousins, but it is definitely not very elegant...
You can also use create_function to do something like this:
As with runkit, it is not very elegant, but it gives the behavior you are looking for.