gpt4 book ai didi

arrays - 使用数组定义类中方法的名称

转载 作者:行者123 更新时间:2023-12-03 17:48:11 27 4
gpt4 key购买 nike

我想用这样的数组命名方法

class MyClass {
private $_array = array();
public function __construct($array) {
$this->_array = $array; //this works!
}

//now, what i'm trying to do is:
foreach ($this->_array AS $methodName) {
public function $methodName.() {
//do something
}
}
}

这样做的正确方法是什么?

最佳答案

当您使用类并想要动态方法之类的东西时 - 我认为魔术方法 __call 是最好的方法。

你可以很容易地做到:

class MyClass {
private $_array = array();
public function __construct($array) {
$this->_array = $array; //this works!
}


public function __call($method, $args) {
if(in_array($method, $this->_array)){
print "Method $method called\n";
//or you can make like this: return call_user_func_array($method, $args);
}
}

}

$obj = new MyClass(array("one","two"));

$obj->two(); // OUTPUT: Method two called

关于arrays - 使用数组定义类中方法的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28787900/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com