如何创建实例方法的本地快捷方式?


How can I create a local shortcut to an instance method?

在Python中,我可以在类实例方法中做到这一点:

esc = self.super_long_escape_function_name
print esc(param1) + ", " + esc(param2)

在PHP中,这是我能想出的最接近的"等价":

$self = $this;
$esc = function($str) use($self) {
   return $self->super_long_escape_function_name($str);
};
echo $esc($param1) . ", " . $esc($param2);

,我甚至不认为这是等价的。我也试过这个,但没有成功:

$esc = '$this->super_long_escape_function_name';

是否有任何好的方法来创建一个类实例方法的本地快捷方式?

就在问完这个问题之后,我发现这是有效的:

$esc = array($this, "super_long_escape_function_name");
echo $esc($param1) . ", " . $esc($param2);

这在PHP 5.3中不起作用,所以如果有更好的答案,我将接受。

试试这个

$esc = array($this, "super_long_escape_function_name");
echo $esc($param1) . ", " . $esc($param2);