基于测试动态调用php对象方法?
有人能告诉我,如果测试成功,是否可以调用php对象的方法?例如下面 正常使用:基于测试动态调用php对象方法?,php,object,dynamic,methods,Php,Object,Dynamic,Methods,有人能告诉我,如果测试成功,是否可以调用php对象的方法?例如下面 正常使用: $obj = new obj; $obj->call() ->successive() ->methods(); 运行测试以查看是否应调用方法: $obj = new obj; $obj->call() ( if ($a) ? ->successive() : '') ->methods(); 有没有办法让上面的第二个例子起作用?还是以另一种方式
$obj = new obj;
$obj->call()
->successive()
->methods();
运行测试以查看是否应调用方法:
$obj = new obj;
$obj->call()
( if ($a) ? ->successive() : '')
->methods();
有没有办法让上面的第二个例子起作用?还是以另一种方式达到同样的结果?谢谢。也许吧
$obj = new obj;
$temp = $obj->call();
if ($a) {
$temp = $temp->successive();
}
$temp->methods();
如果您在测试失败时有一个回退方法来执行,您可以这样构造它,我认为:
$obj = new obj;
$obj->call()
->{ $a ? "successive" : "fallback_method"}()
->methods();
那会有帮助吗?您可能希望回退方法如下所示:
function fallback_method() {
return $this;
}
可能将方法名传递给
.successive()
,并将其作为回调处理
class obj {
private $is_success;
public function call() {
$this->is_success = return_a_boolean();
return $this;
}
public function successive($callback) {
if ($this->is_success && method_exists($this, $callback)) {
$this->$callback();
}
return $this;
}
public function methods() {
//....
}
}
$obj = new obj;
$obj->call()
->successive('methods');
或者您可以执行
->连续(a)->
,然后在方法内部执行表单检查。