PHP -如何循环并修改对象中的所有属性?

yhqotfr8  于 2023-02-07  发布在  PHP
关注(0)|答案(1)|浏览(220)
class testClass {
protected $name;
protected $jobTitle;
protected $age;
public $otherStr;

public function setName($name) {code}
public function setJobTitle($title) {code}
public function setAge($age) {code}
public function setOtherStr($str) {code}

code
}

$test = new testClass();

//Loop through $test and modify all the string properties.

在上面的代码中,我有一些protected和public属性,但大部分都是protected的,我还有相应的set方法,我如何循环$test的所有属性,或者$test的所有setmethods,如果属性是字符串,在它的末尾加上“abc”?

c9qzyr3d

c9qzyr3d1#

你的setter都叫做set[PropertyName]这一点很有帮助。类似这样的东西应该可以工作,但是我目前无法测试它。

foreach ($test as $key => $value) {
    $funcName = 'set'.ucfirst($key);
    // add check for if property is a string, then...
    $funcName($value.'abc');
}

希望这能有所帮助。在属性中添加显式类型也是一个好主意。
我还应该补充一点,这对于代码实践等都很好,但是通常不推荐像这样动态调用函数。

相关问题