深入理解面向对象4
2018年8月8日
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?php class Account { private $user = 1; private $pwd = 2; public function __set($name, $value) #在给不可访问属性赋值时 { echo $name . ' to' . $value . PHP_EOL; $this->name = $value; } public function __get($name) #读取不可访问属性的值时,__get() 会被调用。 { if (!isset($this->name)) { #判断对象中有没有这个值 echo '未设置' . PHP_EOL; #输出未设置这个值 $this->name = '设置默认值'; #开始这个默认值在设置默认值的时候会提前触发 __set 这个魔术方法 } return $this->name; } } $account = new Account; echo serialize($account).PHP_EOL; echo $account->name; |
代码健壮在给不可访问的属性赋值的时候,和访问不可访问的属性时,自动调用__set __get这个方法,为了代码的健壮性.