类似 class_alias,但用于函数
<?php
function function_alias ($original, $alias) {
$args = func_get_args();
assert('count($args) == 2', 'function_alias() 要求正好两个参数');
assert('is_string($original) && is_string($alias)', 'function_alias() 要求字符串参数');
assert('preg_match(\'/^[a-zA-Z_\x7f-\xff][\\\\\\\\a-zA-Z0-9_\x7f-\xff]*$/\', $original) > 0',
"'$original' 不是有效的函数名");
assert('preg_match(\'/^[a-zA-Z_\x7f-\xff][\\\\\\\\a-zA-Z0-9_\x7f-\xff]*$/\', $alias) > 0',
"'$alias' 不是有效的函数名");
$aliasNamespace = substr($alias, 0, strrpos($alias, '\\') !== false ? strrpos($alias, '\\') : 0);
$aliasName = substr($alias, strrpos($alias, '\\') !== false ? strrpos($alias, '\\') + 1 : 0);
$serializedOriginal = var_export($original, true);
eval("
namespace $aliasNamespace {
function $aliasName () {
return call_user_func_array($serializedOriginal, func_get_args());
}
}
");
}
?>
希望 function_alias 能尽快加入到 php 中...