Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erklärung von Fehlern in der PHP-Berechtigungskontrolle

Detaillierte Erklärung von Fehlern in der PHP-Berechtigungskontrolle

小云云
Freigeben: 2023-03-22 21:14:02
Original
1457 Leute haben es durchsucht

Dieser Artikel teilt Ihnen hauptsächlich die detaillierte Erklärung von Fehlern in der PHP-Berechtigungskontrolle mit, hauptsächlich in Form von Text und Code. Ich hoffe, dass er allen helfen kann.

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
Nach dem Login kopieren
Nach dem Login kopieren
/* 
按理来说,李四不应该有权直接引用 张三私有的
但是,在上面的代码中,李四却显然引用和改张三的钱. 
这是因为: 
PHP在实现上,并不是以对象为单位来控制的权限. 
而是以类为单位,来控制的权限.
所以我们强调的是类内,类外,而不是对象内,对象外. 
*/
/* 
$lisi–>类–>Human类 
$lisi->setMoney()函数,也在Human类中, 
在同一个类内部,可以调用.
这也说明了,确实是以类为单位的. 
*/
Nach dem Login kopieren
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
Nach dem Login kopieren
Nach dem Login kopieren

/*
Logisch gesehen sollte Li Si nicht das Recht haben, Zhang Sans privates Zitat direkt zu zitieren.

Allerdings im obigen Code , Li Si zitierte und änderte offensichtlich das Geld von Zhang San.
Dies liegt daran:
Bei der Implementierung von PHP werden Berechtigungen nicht in Einheiten von Objekten kontrolliert.
Berechtigungen werden jedoch in Einheiten von Klassen kontrolliert .

Was wir also betonen, liegt innerhalb der Klasse und außerhalb der Klasse, nicht innerhalb des Objekts und außerhalb des Objekts. class –>Human-Klasse
$lisi->setMoney()-Funktion ist auch in der Human-Klasse

Sie kann innerhalb derselben Klasse aufgerufen werden.


Dies zeigt auch, dass dies tatsächlich der Fall ist basierend auf der Klasse ist die Einheit.
*/

Verwandte Empfehlungen:


PHP objektorientierte private Berechtigungssteuerung_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung von Fehlern in der PHP-Berechtigungskontrolle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage