E.g。
class Foo {
public function testFn($fn) {
$fn();
}
public function hello() {
echo 'World';
}
}
那么,如何将hello
方法传递给testFn
方法? (通过传递我的意思是传递任何类中的任何成员方法)
e.g。
$bar = new Foo();
$bar->testFn($bar->hello); // this will not work
答案 0 :(得分:0)
<?php
class Foo {
public function testFn($fn) {
$this->$fn();
}
public function hello() {
echo 'World';
}
}
$bar = new Foo();
$bar->testFn('hello');
答案 1 :(得分:0)
$bar = new Foo();
$bar->testFn([$bar, 'hello']);
请参阅callable
pseudo type的文档。
答案 2 :(得分:0)
哦,这是奇怪的代码......但它有效:
class Foo {
public function testFn($fn) {
$this->$fn();
}
public function hello() {
echo 'World';
}
}
$bar = new Foo();
$bar->testFn('hello');