PHP面向对象-访问控制

2023-04-28 16:28:47 来源:腾讯云


(相关资料图)

public访问控制

public访问控制是最常用的一种,它表示对象属性和方法可以在任何地方访问,包括类的外部。例如:

phpCopy codeclass Person {    public $name;    public function greet() {        echo "Hello, my name is " . $this->name;    }}$person = new Person();$person->name = "John";$person->greet(); // 输出 "Hello, my name is John"

在上面的示例中,$name属性和greet()方法都被声明为public,因此可以从类的外部访问。在创建新的Person对象后,可以使用$person->name属性设置$name属性的值,并调用$person->greet()方法输出相应的消息。

private访问控制

private访问控制表示对象属性和方法只能在类内部访问。这意味着,在类的外部无法直接访问或修改私有属性或方法。例如:

class Person {    private $name;    public function setName($name) {        $this->name = $name;    }    public function greet() {        echo "Hello, my name is " . $this->name;    }}$person = new Person();$person->setName("John"); // 正确$person->greet(); // 报错,因为$name是私有属性,无法从外部访问

在上面的示例中,$name属性被声明为private,因此无法从类的外部直接访问。相反,可以通过一个名为setName()的public方法来设置$name属性的值,并通过$person->greet()方法输出相应的消息。

protected访问控制

protected访问控制表示对象属性和方法只能在类内部和其子类中访问。这意味着,类的外部无法直接访问或修改受保护的属性或方法。例如:

class Person {    protected $name;    public function setName($name) {        $this->name = $name;    }}class Employee extends Person {    public function greet() {        echo "Hello, my name is " . $this->name;    }}$employee = new Employee();$employee->setName("John"); // 正确$employee->greet(); // 输出 "Hello, my name is John"

在上面的示例中,$name属性被声明为protected,因此无法从类的外部直接访问。相反,可以通过一个名为setName()的public方法来设置$name属性的值,并通过Employee类中的greet()方法输出相应的消息。由于Employee类是Person类的子类,因此可以在子类中访问protected属性。

标签

大米等库存充足!宁波生活必需品市场供应总体平稳有序

宁波市商务局9月14日晚间发布的重点生活必需品市场供应情况保障工作日报显示,我市大米、蔬菜、副食、粮...

2022-09-15 17:27:29

全国新能源汽车下乡活动在昆山启动 将发放500万元“红包”

6月17日,由中国汽车工业协会、省工信厅、省农业农村厅、省商务厅、省发改委、苏州市政府、新华日报社、...

2022-06-20 16:48:35

安阳本土确诊病例上升至26例

  中新网安阳1月10日电 (杨大勇)10日,河南省安阳市召开新冠肺炎疫情防控工作第二场新闻发布会通报称...

2022-01-10 15:22:56

3次推迟婚期 满洲里抗疫民警兑现承诺:“我回来娶你了!”

  (抗击新冠肺炎)3次推迟婚期 满洲里抗疫民警兑现承诺:“我回来娶你了!”  中新网呼伦贝尔1月10...

2022-01-10 15:22:56

上海公安民警在岗位上迎接2022年“中国人民警察节”

  中新网上海1月10日电(记者 李姝徵)“我志愿成为中华人民共和国人民警察,献身于崇高的人民公安事业...

2022-01-10 15:22:55

郑州核酸检测为中小学生开辟“绿色通道”

  (抗击新冠肺炎)郑州核酸检测为中小学生开辟“绿色通道”  中新网郑州1月10日电(杨大勇)“学生不用...

2022-01-10 15:22:55

反扒便衣警察“小曹”:藏在人海中的隐形“守护者”

  小曹说,他现在理解了师父当年如何历练出一副“火眼”,碰见的贼多了,案子经手的多了,自然就有了...

2022-01-10 15:22:54

哥哥移植肾脏给病重弟弟 已在上海顺利康复

  中新社上海1月10日电 (陈静 王根华)在上海武警服役的弟弟被尿毒症击倒,哥哥义无反顾地捐献出自...

2022-01-10 15:22:54

网友与人裸聊被敲诈10万余元 被告人获刑5年

  中新网长春1月10日电 (谭伟旗)当下,新型网络诈骗案件已较为普遍,由于网络上身份的不确定性、语言...

2022-01-10 15:22:53

1月10日起天津市暂停开展旅行社旅游业务活动

  中新网1月10日电 据天津市文旅局官网消息,天津市文化和旅游局10日发布紧急通知称,即日起,天津市...

2022-01-10 15:22:53
x 广告
x 广告

Copyright  2015-2022 青年粮油网版权所有  备案号:皖ICP备2022009963号-20   联系邮箱:39 60 291 42@qq.com