Home >Backend Development >PHP Tutorial >Detailed explanation of the differences between PHP object-oriented private, protected and public

Detailed explanation of the differences between PHP object-oriented private, protected and public

小云云
小云云Original
2018-03-29 11:10:081777browse

This article mainly shares with you a detailed explanation of the differences between PHP object-oriented private, protected, and public. I hope it can help everyone.

        private     protected       public本类内     Y           Y              Y
子类内     N           Y              Y
外部       N           N              Y

Note:
In java, if no parameters are written in front of the attributes/methods
that is, public/protected/private are not written, It is also possible, friendly

In PHP, if public/protected/private are not written,
is understood as public. It is recommended to develop good habits and don’t write

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能在子类访问,本类内能否访问?
答:当然可以

The above is the detailed content of Detailed explanation of the differences between PHP object-oriented private, protected and public. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn