class human { private $money = 1000; public function getmoney($people) { return $people->money; } public function setmoney($people) { $people->money -= 500; } }$zhangsan = new human();$lisi = new human();//echo $lisi->money; //报错// 让李四去打探张三的钱echo $lisi->getmoney($zhangsan),'<br >'; //1000// 让李四去改变张三的钱$lisi->setmoney($zhangsan); //减500echo $lisi->getmoney($zhangsan),'<br >'; //剩500
/* 按理来说,李四不应该有权直接引用 张三私有的 但是,在上面的代码中,李四却显然引用和改张三的钱. 这是因为: php在实现上,并不是以对象为单位来控制的权限. 而是以类为单位,来控制的权限. 所以我们强调的是类内,类外,而不是对象内,对象外. */ /* $lisi–>类–>human类 $lisi->setmoney()函数,也在human类中, 在同一个类内部,可以调用. 这也说明了,确实是以类为单位的. */
class human { private $money = 1000; public function getmoney($people) { return $people->money; } public function setmoney($people) { $people->money -= 500; } }$zhangsan = new human();$lisi = new human();//echo $lisi->money; //报错// 让李四去打探张三的钱echo $lisi->getmoney($zhangsan),'<br >'; //1000// 让李四去改变张三的钱$lisi->setmoney($zhangsan); //减500echo $lisi->getmoney($zhangsan),'<br >'; //剩500
/*
按理来说,李四不应该有权直接引用 张三私有的
但是,在上面的代码中,李四却显然引用和改张三的钱.
这是因为:
php在实现上,并不是以对象为单位来控制的权限.
而是以类为单位,来控制的权限.
所以我们强调的是类内,类外,而不是对象内,对象外.
*/
/*
$lisi–>类–>human类
$lisi->setmoney()函数,也在human类中,
在同一个类内部,可以调用.
这也说明了,确实是以类为单位的.
*/
相关推荐:
php面向对象之private权限控制_php教程
以上就是php权限控制的bug详解的详细内容。
