在 PHP 中有没有办法给函数/方法调用做别名?

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' 部分)。

dec*_*eze 5

您需要创建一个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