而不是“创建”功能,您可以使用魔术方法
__call(),以便在调用“不存在”功能时,可以处理它并执行正确的操作.
这样的事情
class MyClass{
private $array = array('one', 'two', 'three');
function __call($func, $params){
if(in_array($func, $this->array)){
return 'Test'.$func;
}
}
}
然后你可以打电话:
$a = new MyClass;
$a->one(); // Testone
$a->four(); // null
编辑:如果你使用PHP 5.3,你实际上可以做你想要做的事情!
class MyClass{
private $array = array('one', 'two', 'three');
function __construct(){
foreach ($this->array as $item) {
$this->$item = function() use($item){
return 'Test'.$item;
};
}
}
}
这样做是有效的,除了你不能直接调用$a-> one(),你需要save it as a variable.
$a = new MyClass;
$x = $a->one;
$x() // Testone