Maison >développement back-end >tutoriel php >Explication détaillée des différences entre PHP orienté objet privé, protégé et public
Cet article partage principalement avec vous une explication détaillée des différences entre PHP orienté objet privé, protégé et public. J'espère qu'il pourra aider tout le monde.
private protected public本类内 Y Y Y 子类内 N Y Y 外部 N N Y
Remarque :
En Java, si aucun paramètre n'est écrit devant l'attribut/la méthode
c'est-à-dire public/protégé /private ne le sont pas. Il est normal d'écrire amicalement
en PHP, si vous n'écrivez pas public/protected/private,
est compris comme public. Il est recommandé de développer une bonne habitude et de ne pas le faire. écrire
class Human { private $name = 'zhangsan'; protected $money = 3000; public $age = 28; public function say() { echo '我叫',$this->name,'<br />'; echo '我有',$this->money,'元钱<br />'; echo '我今年',$this->age,'岁'; } }class Stu extends Human { private $friend = '小花'; public function talk() { echo '我叫',$this->name,'<br />'; echo '我有',$this->money,'元钱<br />'; echo '我今年',$this->age,'岁<br />'; } }$ming = new Stu();echo $ming->age,'<br />'; // 28echo $ming->friend; //出错:因为类外不能调用privateecho $ming->money; //出错:因为类外不能调用protected属性$ming->talk();/** 出错: Notice: Undefined property: Stu::$name in 。。。 我有3000元钱 我今年28岁 分析原因: Undefined property: Stu::$name 这是说明:stu对象 没有name属性 但昨天说,私有的不是可以继承吗? 是可以继承过来,但系统有标记,标记其为父类层面的私有属性. 因此无权调用,导致此错发生. 可以分析出: protected 可以在 子类内访问 protected能在子类访问,本类内能否访问? 答:当然可以
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!