设为首页 收藏本站
查看: 1223|回复: 0

[经验分享] PHP面向对象——访问修饰符

[复制链接]

尚未签到

发表于 2015-8-23 17:36:38 | 显示全部楼层 |阅读模式
  PHP中有三种访问修饰符,分别是:
  
       
  • public(公共的、默认)   
  • protected(受保护的)   
  • private(私有的)
  它们可以分别用在类的属性和方法上(类的属性和方法统称为类的成员),用来修饰类成员的访问权限。   
  public(公共的、默认)
  在PHP5中如果类没有指定成员的访问修饰符,默认就是public的访问权限。
  
/*
以下两个方法声明访问权限效果相同
*/
function say(){};
publilc function say(){};
  当类的成员被声明为public的访问修饰符时,该成员能被外部代码访问和操作。

private(私有的)
  被定义为private的成员,对于类内部所有成员都可见,没有访问限制。对类外部不允许访问。

protected(受保护的)
  protected稍微有点复杂,被声明为protected的成员,只允许该类的子类进行访问。
  
  访问权限情况表:


访问权限



public



protected



private



所有












子类












类内











  以下面的例子总结:



<?php
class Woman{
public $name = 'lisa'; // 公共的访问权限
protected $money = 3000.00; // 受保护的权限
private $age = 35; // 私有的访问权限
function printInfo(){
echo $this->name;
echo $this->money;
echo $this->age;
}
private function secret(){
echo &quot;这是个秘密!&quot;;
}
}
$woman = new Woman();
echo $woman->name; // 公共属性可以访问
// echo $woman->money; // 受保护属性,报致命错误
// echo $woman->age; // 私有属性,报致命错误
$woman->printInfo(); // 可以打印三个属性的信息,因为printInfo是公共方法
// $woman->secret(); // 私有方法,访问出错
class Girl extends Woman{
// 可以重新定义父类的public和protected方法,但不能定义private的
// protected $money = 2000.00; // 可以从新定义
function printInfo(){
echo $this->name;
echo $this->money;
// echo $this->age; // 找不到属性
    }
}
$girl = new Girl();
echo $girl->name; // 公共属性可以访问
// echo $girl->money; // 受保护属性,报致命错误
// echo $girl->age; // 私有属性,找不到属性
$girl->printInfo(); // 显示$name,$money,找不到$age属性;
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103147-1-1.html 上篇帖子: php 分页类 下篇帖子: web前端初识PHP(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表