我已經很好看,並且似乎無法找到此問題的答案。在方法中聲明受保護的變量
基本上我使用_call方法來動態生成get和set方法,但是當聲明一個變量時PHP的默認值是public的。無論如何,從類內部聲明一個變量爲受保護的?
function __call($method, $arguments) {
$prefix = strtolower(substr($method, 0, 3));
$property = strtolower(substr($method, 3));
if (empty($prefix) || empty($property)) {
return;
}
if ($prefix == "get" && isset($this->$property)) {
return $this->$property;
}
if ($prefix == "set") {
$this->$property = $arguments[0];
}
}
出於興趣,您爲什麼使用__call而不是__get和__set? – 2010-07-31 17:08:23
只是似乎更容易,我也從這裏複製它: http://onlamp.com/pub/a/php/2005/06/16/overloading.html – 2010-07-31 17:09:43