PHP类中public、protected、private的区别

2022-07-29 550

PHP类中public、protected、private的区别!php类中public、protected、private实例代码!在PHP类中public、protected、private是我们在类中规定我们的成员变量、方法的可见性(数据隐藏),也就是说我们可以在PHP中,用public、protected、private来控制类变量和函数的访问权限。

PHP类中public、protected、private的区别
PHP类中public、protected、private的区别

那么public、protected、private在PHP类中有什么区别?public、protected、private的优先级又是怎么样的呢?下面浩沐资源网将从public、protected、private的概念及如何调用、public、protected、private的数据可见性优先级顺序及一个PHP类中public、protected、private的使用实例代码来记载本文。

public、protected、private的如何调用及区别

public:是我们在PHP中是公共成员、默认的、类的内外部可以调用。

private:是PHP中类的私有成员,在类中定义了private之后将不能在类的外部访问,只能在所属类的内部进行访问,但我们可以通过在这个类的内部新建一个方法进行对类的私有成员的调用。

protected:是PHP中类的保护成员,不能在类的外部访问,但是可以被子类和父类访问,同时protected和private一样也可以通过在这个类的内部新建一个方法对类的保护成员进行调用。

  • public是公共的类成员变量,不管在类的内部还是外部,我们都可以成功调用;
  • protected是类的保护成员,我们可以在类的成员方法和子类继承父类后也可以调用,但不能直接将父类实例化后调用输出;
  • private是类的私有成员,我们只能在类的内部和类成员方法中调用输出,在类外部和继承父类的子类中都不能使用。

public、protected、private数据可见性排序

根据上面对于public、protected、private的如何调用及区别的记载,public、protected、private数据可见性排序,我们可以得出以下的推断:

public>protected>private;

那么这种推断是否正确呢?我们通过下面的一个PHP类中public、protected、private的使用实例代码,来验证我们以上的推断。

PHP类中public、protected、private的使用实例代码

public、protected、private能否在类实例化后直接调用:

<?php
class Mylove {
    //创建一个公共成员变量;
    public $name = '浩沐';
    //创建一个私有成员变量;
    private $people = 'Godmu';
    //创建一个受保护的成员变量;
    protected $food = '小天';
}
//实例化Mylove;
$love = new Mylove();
//输出公共成员变量;
echo $love->name;
echo '<hr>';
//输出受保护的成员变量;
echo $love->food;
echo '<hr>';
//输出私有成员变量
echo $love->people;
?>

当我们实例化类Mylove之后,我们可以输出public的成员变量的值,当我们输出输出受保护的成员变量的时候报错了,所以验证了我们上面记载的类的保护成员,不能在类的外部访问。同样的,我们把echo $love->people;放在echo $love->food;之后,同样会报Fatal error错误。

调用类内部方法能否调用protected、private的成员变量实例代码:

<?php
class Mylove {
    //创建一个公共成员变量;
    public $name = '浩沐';
    //创建一个私有成员变量;
    private $people = 'Godmu';
    //创建一个受保护的成员变量;
    protected $food = '小天';
    function show_love(){
        echo $this->people.'<br>';
        echo $this->food;
    }
}
//实例化Mylove;
$love = new Mylove();
//调用类的成员方法;
$love->show_love();
?>

在上述的代码块中,我们在类中将私有成员变量、受保护的成员变量在成员方法中调用,我们将类实例化之后,确实可以调用类成员方法将类中私有成员变量、受保护的成员变量成功输出出来。

子类继承父类使用protected、private实例代码:

<?php
class Mylove {
    //创建一个公共成员变量;
    public $name = '浩沐资源网';
    //创建一个私有成员变量;
    private $people = 'Godmu';
    //创建一个受保护的成员变量;
    protected $food = '小天';
    function show_love(){
        echo $this->people.'<br>';
        echo $this->food;
    }
}

class lovely extends Mylove{
    function show_love(){
        echo '之类继承父类之后在成员方法中使用private、protected成员变量:<br>';
        echo $this->food.'<br>';
        echo $this->people;
    }
}
//实例化Mylove;
$love = new lovely();
//调用类的成员方法;
$love->show_love();
?>

上面实例代码中,我们让子类继承父类,然后在子类的成员方法中调用父类的protected、private成员变量,可以看到虽然private成员变量调用的时候没有报错,但是没有调用出数据来,而protected成员变量却成功调用出来了。

经过上面3个实例代码的验证,充分证明了我们上述对public、protected、private的概念及如何调用、public、protected、private数据可见性排序都是正确的,同时通过多写写实例代码,将会加深我们对于public、protected、private这些成员变量的使用。

声明: 本站仅提供资源学习下载,资源费用仅为赞助站长的整理费,不代表资源自身价值也不包含任何服务。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
本站提供的资源来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:duhaomu@163.com

浩沐资源网 开发技巧 PHP类中public、protected、private的区别 https://www.dhaomu.com/33442.html

相关文章

发表评论
暂无评论
  • 0 +

    访问总数

  • 0 +

    会员总数

  • 0 +

    文章总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

浩沐资源网-打造全网优质免费教程资源分享网站!