我试图将一个方法中的变量赋值给另一个方法(作为函数)。
所以也许在方法"A"中,我想将方法"B"赋值为函数。
我试过了,但var_dump为false,参数$fn被视为字符串(我认为)。
<?php
class MyClass {
public function call( $fn ) {
var_dump( is_callable( $this->$fn ) );
}
public function required( $str ) {
return empty( $str );
}
}
$class = new MyClass;
$class->call( 'required' );
这可能是一个更好的方法,但我认为这就是你想要的:
class MyClass
{
public function call($function, $parameters = null)
{
if (method_exists(__CLASS__, $function)) {
return $this->{$function}($parameters);
}
}
public function required($string)
{
return empty($string);
}
}
$class = new MyClass;
var_dump($class->call('required', 'yo'));
不要完全说明你为什么要这样做,我想可能有更好的方法来实现你的最终目标,但以上至少应该满足你的要求。它限制了它处理参数的方式,但这是一个起点。