该示例来自 Edward Lecky-Thompson 的“Professional PHP5”一书。
function __get($propertyName) {
if(!array_key_exists($propertyName, $this->propertyTable))
throw new Exception("Błędna własność \"$propertyName\"!");
if(method_exists($this, 'get' . $propertyName)) {
return call_user_func(array($this, 'get' . $propertyName));
} else {
return $this->data[$this->propertyTable[$propertyName]];
}
}
有人可以解释一下call_user_func函数中究竟发生了什么吗?
在 php.net 上,我读到第一个参数是要调用的函数,其余参数作为其参数传递给该函数。
在 php.net 上有一些简单的例子,我理解它们没有问题。但是我不明白为什么在上面的例子中有一个数组,为什么 $this 作为数组的第一个元素?
PS我在stackoverflow上发现了一个类似的问题,我理解代码应该做什么,但我不完全理解为什么写的东西有效。
这是类似问题的链接: PropertyObject