为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
呼如林 2021-06-22 09:25:16
我正在尝试对我的一些代码进行单元测试,根据一些变量动态调用我的 setter 会更容易。不幸的是,我的方法没有按预期工作,我找不到有关如何执行此操作的更多信息。我有一个始终是字符串的变量。它用作属性名称,并与“set”关键字一起使用,结果应为“setSomething”或“setSomethingElse”。我已经试过了$obj->set{$property}($value);// or$obj->set$property($value);但这些似乎不起作用。也许你们中的某个人知道正确的方法;)!
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

您需要将整个方法名称设为变量,或者将整个名称括在{}例如


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;

输出


4

8


查看完整回答
反对 回复 2021-06-25
  • 1 回答
  • 0 关注
  • 383 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信