public private protected 修饰符整理
1.public定义的类或方法;任何类的实例都可以访问
2.private定义的属性和方法;只能该类内部使用;如果子类要访问父类的private属性;必须实现__set()和__get()方法;
3.protected定义的属性和方法;该本类和子类或者父类内部使用。实例对象不可以访问;
<?php class a { private $c=100; private $name = 'wang san'; public $age=200; //设置私有属性 public function __set($a,$val){ echo "属性:{$a} 值: {$val} 在直接设置私有属性值的时候,自动调用了这个__set()方法为私有属性赋值<br>"; $this->$a = $val; } //获取私有属性 public function __get($a){ echo "属性:{$a} 在直接获取私有属性值的时候,自动调用了这个__get()方法<br>"; return $this->$a; } private function getAge(){ echo "我是父类私有的private"; } protected function getName(){ echo "我是父类保护性方法的protected"; } function getALL(){ echo "我是父类public方法"; } } $a = new a(); echo $a->age.'<br>'; $a->name = '中国'; //必须实现了魔术方法__set 和 __get方法 实例对象才可以访问 echo $a->name.'<br>'; //输出:中国 class b extends a { public function getName2(){ $this->getName();//子类内部可以使用;但是外部不可以使用 } public function getAge2(){ $this->getAge(); //报错 不允许子类内部使用 } } $b = new b(); $b->name = 22; echo $b->name.'<br>'; //echo $b->getAge(); //错误 子类对实例对象 不可以是使用 //echo $b->getName(); //错误 子类对实例对象 不可以是使用 echo $b->getName2(); //可以使用;子类对实例对象 可以内部使用 //echo $b->getAge2(); //错误 子类对实例对象 可以内部使用
输出:
佛语:我本求心不求佛,了知三界空无物,若欲求佛但求心,只这心心心是佛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧