web*_*cdr 0 php methods alias function
我不是在谈论为实际的函数/方法名称本身设置别名,而是为它们的调用设置别名:
$test->some_method($a,$b);
Run Code Online (Sandbox Code Playgroud)
我们可以将上面的别名命名为:
$t_sm($a,$b);
Run Code Online (Sandbox Code Playgroud)
同样,我不是在谈论为实际的函数/方法名称设置别名,而是在谈论它们的实际调用,减去参数。
编辑
不,我不想创建包装函数。并严格查看这里的可读性目的。这样可读性更强。
编辑
当为实际方法调用取别名时,它包括对象的名称,包括它正在调用的方法。好像我只是给方法取别名一样,我仍然必须显式调用它的对象。
编辑 是否有一个方法调用别名使得:
class Foo
{
function Bar($msg)
{
echo $msg;
}
}
$f_b = 'Foo::Bar';
$msg = "calling method Bar via method-call-aliasing.";
$f_b($msg);
Run Code Online (Sandbox Code Playgroud)
它创建 Foo 的实例和该实例的别名以及指定的方法(字符串 'Foo::Bar' 的'Bar' 部分)。
您需要创建一个callable
伪类型,对于对象方法来说,它是一个数组,例如:
$t_sm = [$test, 'some_method'];
Run Code Online (Sandbox Code Playgroud)
然后可以调用为:
$t_sm($a, $b);
Run Code Online (Sandbox Code Playgroud)
更多文档:http : //php.net/manual/en/functions.variable-functions.php
归档时间: |
|
查看次数: |
1353 次 |
最近记录: |