note 111369 added to function.class-alias
| From: | Anonymous | Date: | Tue, 12 Feb 2013 17:42:57 +0000 |
| Subject: | note 111369 added to function.class-alias | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-193618@lists.php.net to get a copy of this message | ||
Like class_alias but for functions:
<?php
function function_alias ($original, $alias) {
$args = func_get_args();
assert('count($args) == 2', 'function_alias() require exactly two arguments');
assert('is_string($original) && is_string($alias)', 'function_alias()
require string arguments');
// valid function name - http://php.net/manual/en/functions.user-defined.php
assert('preg_match(\'/^[a-zA-Z_\x7f-\xff][\\\\\\\\a-zA-Z0-9_\x7f-\xff]*$/\',
$original) > 0',
"'$original' is not a valid function name");
assert('preg_match(\'/^[a-zA-Z_\x7f-\xff][\\\\\\\\a-zA-Z0-9_\x7f-\xff]*$/\',
$alias) > 0',
"'$alias' is not a valid function name");
$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());
}
}
");
}
?>
Until hopefully function_alias is added to php...
----
Server IP: 69.147.83.199
Probable Submitter: 78.2.108.48
----
Manual Page -- http://php.net/manual/en/function.class-alias.php
Edit -- https://master.php.net/note/edit/111369
Del: integrated -- https://master.php.net/note/delete/111369/integrated
Del: useless -- https://master.php.net/note/delete/111369/useless
Del: bad code -- https://master.php.net/note/delete/111369/bad+code
Del: spam -- https://master.php.net/note/delete/111369/spam
Del: non-english -- https://master.php.net/note/delete/111369/non-english
Del: in docs -- https://master.php.net/note/delete/111369/in+docs
Del: other reasons-- https://master.php.net/note/delete/111369
Reject -- https://master.php.net/note/reject/111369
Search -- https://master.php.net/manage/user-notes.php