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

时间:2013-05-27 06:48:30

标签: php

在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';

有没有什么好方法可以为类实例方法创建本地快捷方式?

2 个答案:

答案 0 :(得分:2)

在提出这个问题后,我发现这有效:

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

这在PHP 5.3中不起作用,所以如果它出现的话我会接受更好的答案。

答案 1 :(得分:0)

试试这个

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