示例:我有一个变量
$method = "doSomething";
Run Code Online (Sandbox Code Playgroud)
假设我有一个$ myObject,它知道一个非静态的公共方法doSomething()
我可以通过这样做来调用该方法吗?
$myObject->$method();
Run Code Online (Sandbox Code Playgroud)
或者还有其他/更好的方法吗?
Pas*_*TIN 10
是的,你可以这样做 :
$myObject->$method();
Run Code Online (Sandbox Code Playgroud)
这称为变量函数
以下是证明它的代码:
class ClassA {
public function method() {
echo 'glop';
}
}
$a = new ClassA();
$methodName = 'method';
$a->$methodName();
Run Code Online (Sandbox Code Playgroud)
获取此输出:
glop
Run Code Online (Sandbox Code Playgroud)
这意味着该方法已被调用;-)
另一种方法是使用call_user_func或call_user_func_array:
call_user_func(array($a, $methodName));
Run Code Online (Sandbox Code Playgroud)
在这里,你不需要这个 - 但是你必须使用它,如果你的方法是static,至少对于PHP <= 5.2
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |