Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP权限控制的bug详解

PHP权限控制的bug详解

小云云
小云云asal
2018-03-31 13:07:581433semak imbas

本文主要和大家分享PHP权限控制的bug详解,主要以文字和代码的方式和大家分享,希望能帮助到大家。

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),&#39;<br >&#39;; //1000// 让李四去改变张三的钱$lisi->setMoney($zhangsan); //减500echo $lisi->getMoney($zhangsan),&#39;<br >&#39;; //剩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),&#39;<br >&#39;; //1000// 让李四去改变张三的钱$lisi->setMoney($zhangsan); //减500echo $lisi->getMoney($zhangsan),&#39;<br >&#39;; //剩500

/*
按理来说,李四不应该有权直接引用 张三私有的

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

所以我们强调的是类内,类外,而不是对象内,对象外.
*/

/*
$lisi–>类–>Human类
$lisi->setMoney()函数,也在Human类中,
在同一个类内部,可以调用.

这也说明了,确实是以类为单位的.
*/

相关推荐:

PHP面向对象之private权限控制_PHP教程

Atas ialah kandungan terperinci PHP权限控制的bug详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn