Bunu değiştirmek için çalışırken, bir özel durum.
Ben bir çözüm, sınıf özellikleri, olacaktır varsayalım:
__get
yöntemi kullanın__set
yöntemini tanımlar.Değişkenler için, ben bunu yazmaya çalışıyoruz PHP istisna hangi için salt okunur bir değişken olması mümkün olduğunu sanmıyorum.
For instance, consider this little class :
class MyClass {
protected $_data = array(
'myVar' => 'test'
);
public function __get($name) {
if (isset($this->_data[$name])) {
return $this->_data[$name];
} else {
// non-existant property
// => up to you to decide what to do
}
}
public function __set($name, $value) {
if ($name === 'myVar') {
throw new Exception("not allowed : $name");
} else {
// => up to you to decide what to do
}
}
}
Sınıf Instanciating ve özelliği okumaya çalışıyorum:
$a = new MyClass();
echo $a->myVar . '<br />';
Size beklenen çıktıyı alırsınız:
test
Özelliğine yazmak için çalışırken:
$a->myVar = 10;
Sana bir özel durum alırsınız:
Exception: not allowed : myVar in /.../temp.php on line 19