Contrôle des autorisations privées PHP

不言
Libérer: 2023-03-24 20:32:02
original
1789 Les gens l'ont consulté

Cet article présente le contrôle des autorisations privées de PHP, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

// contrôle des autorisations privées

// ===Code partie 1====

class Human {
    public $mood = ''; // 心情,公有
    private $money = 1000; // 钱,私有

    public function showMoney() {
        return $this->money;
    }    private function secret() {
        echo '我小时候偷吃过一块肉';
    }    public function tellMe() {
        $this->secret();
    }
}
$lisi = new Human();
$lisi->mood = 'happy';
echo $lisi->mood,&#39;<br >&#39;;
//钱定义为私有属性,在类Human{}外面调用,调用失败
//echo $lisi->money;
//$lisi-money = 500;
echo $lisi->showMoney();
echo &#39;<br >&#39;;/*
showMoney是公共的,在此行可以调用.
showMoney中的 return $this->money;
这一句运行的环境是在 类{}的内部,因此有权限访问 money属性
*///$lisi->secret(); //报错$lisi->tellMe(); 
// 可以调用,因为在通过函数在类内调用的echo &#39;<hr >&#39;;
Copier après la connexion

/*
Résumé : le contrôle des autorisations privées

ne peut être appelé qu'au sein de la classe {}
Walked. sur {}, impossible d'ajuster
*/



// Bug de contrôle des autorisations

// ===Code partie 2===

class Human2 {
    private $money = 1000;    public function getMoney($people) {
        return $people->money;
    }    public function setMoney($people) {
        $people->money -= 500;
    }
}$zhangsan = new Human2();$lisi = new Human2();//echo $lisi->money; 
//报错// 让李四去打探张三的钱echo $lisi->getMoney($zhangsan),&#39;<br >&#39;;
 //1000// 让李四去改变张三的钱$lisi->setMoney($zhangsan); 
 //减500echo $lisi->getMoney($zhangsan),&#39;<br >&#39;; 
 //剩500print_r($zhangsan);
Copier après la connexion

/*
Ce qui est étrange, c'est que
l'argent de Zhangsan devrait être affecté par l'appel de Zhangsan à getMoney et setMoney.

Mais parlons du contrôle des autorisations privées, le principe est conforme avec :
c'est-à-dire :
appelé getMoney() public a le droit de
getMoney et est dans la classe {}, a le droit de lire l'argent de la propriété privée

pour appeler setMoney () public a le droit de
setMoney et est dans la classe {}, et a le droit de modifier l'attribut privé de zhangsan money

*/

Recommandations associées :

PHP cette liaison

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal