Function Aliasing in PHP
Posted May 20, 2010
One question I've asked myself and I see asked on sites such as stackoverflow.com is if PHP is able to have "aliases" for functions. The answer is either, "no, you have to use a wrapper function" or to the more extreme "you can write an extension".
Since I'm one of those PHP developers who doesn't think that PHP's "eval" instruction is a demonic entity to be avoided at all costs, this opens a more viable answer:
<?php function func_alias($target, $original) { eval("function $target() { \$args = func_get_args(); return call_user_func_array('$original', \$args); }"); } ?>
This works surprisingly well. Here is a code example:
<?php function func_alias($target, $original) { eval("function $target() { \$args = func_get_args(); return call_user_func_array('$original', \$args); }"); } function hello($recipient) { echo "Hello, $recipient\n"; } function helloMars() { hello('Mars'); } func_alias('greeting', 'hello'); func_alias('greetingMars', 'helloMars'); greeting('World'); greetingMars(); ?>
Comments
There are no comments for this post.
No comments found
Add comment
Visit my Friends and Family
If you've enjoyed my site, please take a moment to visit my friends and family, many of whom have some interesting insights, and entertaining thoughts and ideas.
- Crause Family - the family website
- Peter Crause - my father
- Justin Crause - my brother
- Cencina Photomagic - great photographer