php三种访问权限,php三种权限的详解

PHP类中有三种访问修饰符public、protected、private,在这里我详细梳理下这三种修饰符,下面以例子讲解。

/**

* public、protected、private修饰符权限

* car类

*/

class Car

{

public $carName = 'BZ';

protected $color = 'white';

private $price = '100万';

public function test1()

{

//内部可以调用public修饰的carName;

echo $this->carName;

}

public function test_protected_1()

{

//内部可以调用protected修饰的color

echo $this->color;

}

public function test_private_1()

{

//内部可以调用private修饰的price

echo $this->price;

}

}

/**

* bz继承于Car类

*/

class Bz extends Car

{

public function test2()

{

//子类内部调用carName;

echo $this->carName;

}

public function test_protected_2()

{

//子类内部可以调用protected修饰的color

echo $this->color;

}

public function test_private_2()

{

//子类内部不能调用private修饰的price

echo $this->price;

}

}

$bz = new Bz();

//测试public权限执行的代码,

// echo $bz->carName; //运行后可证明:外部可以调用;

// echo $bz->test1(); //运行后可证明:内部可以调用;

// echo $bz->test2(); //运行后可证明:子类内部可以调用;

//测试protected权限执行的代码

// echo $bz->color; //运行结果:Cannot access protected property,可证明:外部不能调用protected修饰的属性。

// echo $bz->test_protected_1();//运行后可证明:内部能调用protected修饰的属性。

// echo $bz->test_protected_2(); //运行后可证明:子类内部能调用protected修饰的属性。

//测试private权限执行的代码

// echo $bz->price; //运行结果:Undefined property,可证明:外部不能调用private修饰的属性。

// echo $bz->test_private_1();//运行后可证明:内部能调用private修饰的属性。

// echo $bz->test_private_2();//运行结果:Undefined property,可证明:子类内部不能调用private修饰的属性。

同理用这三种修饰符修饰的方法也是一样的权限,理解这样有助你理解封装,在这用代码测试运行方式让理解更轻松。

总结:public修饰的属性或方法,类和子类的内部和和外部都能调用;protected修饰的属性或方法,类和子类的内部都能调用,而在外部不能调用;private修饰的属性或方法,只能该类自己内部调用,该类的外部和子类的内外部均不能调用;

本文仅代表作者个人观点,不代表SEO研究协会网官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员。更多相关资讯,请到SEO研究协会网www.seoxiehui.cn学习互联网营销技术请到巨推学院www.jutuiedu.com。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值