PHP權限控制的bug詳解

小云云
發布: 2023-03-22 21:14:02
原創
1398 人瀏覽過

本文主要和大家分享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教學

#

以上是PHP權限控制的bug詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!