final class A {
private $_name = 'default';
public function __get( $name ){
if( $name === 'name' )
return $this->_name;
}
public function __set( $name, $value ){
if( $name === 'name' ){
echo "попытка установить значение для '$name' - игнорим\n" ;
}
}
}
$a = new A;
$a->name = 1; // сообщение об игноре
echo $a->name; // default
final class a {
private $_name = 'default';
function __set($property, $value) {
if ($property == 'name'){
throw new Exception("You can't set value of propert");
}
$this->property = $value;
}
function __get($property)
{
if($property == 'name'){
return $this->_name;
}
}
}
你可以使用魔法。
您可以使用魔术方法 __get 和 __set
原则上,您可以对属性进行完整的模拟https://habrahabr.ru/post/186420/,在框架中,它们通常通过内部“属性数组”来实现