PHP - 通过变量动态调用对象方法

我正在尝试对我的一些代码进行单元测试,根据一些变量动态调用我的 setter 会更容易。不幸的是,我的方法没有按预期工作,我找不到有关如何执行此操作的更多信息。


我有一个始终是字符串的变量。它用作属性名称,并与“set”关键字一起使用,结果应为“setSomething”或“setSomethingElse”。


我已经试过了


$obj->set{$property}($value);

// or

$obj->set$property($value);

但这些似乎不起作用。


也许你们中的某个人知道正确的方法;)!


呼如林
浏览 391回答 1
1回答

手掌心

您需要将整个方法名称设为变量,或者将整个名称括在{}例如class test {    public $Something;    public $SomethingElse;    function setSomething($value) {        $this->Something = $value;    }    function setSomethingElse($value) {        $this->SomethingElse = $value;    }}$property = "Something";$t = new test;$setter = "set$property";$t->$setter(4);echo $t->Something;$property = "SomethingElse";$t->{"set$property"}(8);echo $t->SomethingElse;输出48
打开App,查看更多内容
随时随地看视频慕课网APP