private 权限控制 是已类为单位 而不是以对象为单位!

来源:互联网 发布:服务器php升级 编辑:程序博客网 时间:2024/05/14 05:28
class Human{private $money=500;public function getMoney($obj){return $obj->money;}public function setMoney($obj){return $obj->money-=250;}}$lisi=new Human();$zsan=new Human();echo $lisi->getMoney($zsan); //传入的参数是$zsan 然后调用getMoney()return $asan的money;echo '<br>';echo $lisi->setMoney($zsan);echo '<br>';print_r($zsan);


结果:

500250Human Object ( [money:Human:private] => 250 ) 

李四读取和改变张三的钱,
这如果从生活角度来看,是不合理的

钱私有,是指 "每个对象的钱,针对每个对象私有";
即:张三的钱,由张三->showMoney才能引用.

李四不应该有权直接引用,
或者说,李四->showMoney,也只有权引用 李四自己的money属性.


但是,在上面的代码中,李四却显然引用和改为张三的钱.
这是因为:
PHP在实现上,并不是以对象为单位来控制的权限.
而是以类为单位,来控制的权限,
所以前一页,不断强调 ,类内,类外,而不是说对象内,对象外.


因为 类声明一次,而对象却可能非常多.
以类为单位,简化了判断模型.


原创粉丝点击