Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Unterschiede zwischen PHP objektorientiert privat, geschützt und öffentlich

Detaillierte Erläuterung der Unterschiede zwischen PHP objektorientiert privat, geschützt und öffentlich

小云云
Freigeben: 2023-03-22 16:00:02
Original
1767 Leute haben es durchsucht

Dieser Artikel gibt Ihnen hauptsächlich eine detaillierte Erklärung der Unterschiede zwischen PHP objektorientiert privat, geschützt und öffentlich. Ich hoffe, er kann allen helfen.

        private     protected       public本类内     Y           Y              Y
子类内     N           Y              Y
外部       N           N              Y
Nach dem Login kopieren

Hinweis:
In Java, wenn keine Parameter vor dem Attribut/der Methode geschrieben werden
d. h. öffentlich/geschützt /private sind nicht Es ist in Ordnung, in PHP freundlich

zu schreiben. Wenn Sie nicht public/protected/private schreiben, wird
als öffentlich verstanden. Es wird empfohlen, eine gute Angewohnheit zu entwickeln und dies nicht zu tun schreibe

class Human {
    private $name = 'zhangsan';    protected $money = 3000;    public $age = 28;    public function say() {
        echo &#39;我叫&#39;,$this->name,&#39;<br />&#39;;        echo &#39;我有&#39;,$this->money,&#39;元钱<br />&#39;;        echo &#39;我今年&#39;,$this->age,&#39;岁&#39;;
    }
}class Stu extends Human {
    private $friend = &#39;小花&#39;;    public function talk() {
        echo &#39;我叫&#39;,$this->name,&#39;<br />&#39;;        echo &#39;我有&#39;,$this->money,&#39;元钱<br />&#39;;        echo &#39;我今年&#39;,$this->age,&#39;岁<br />&#39;;        
    }
}$ming = new Stu();echo $ming->age,&#39;<br />&#39;; // 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能在子类访问,本类内能否访问?
答:当然可以
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Unterschiede zwischen PHP objektorientiert privat, geschützt und öffentlich. 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