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

[经验分享] PHP类实例教程(九):访问控制 private, protected, public

[复制链接]

尚未签到

发表于 2017-4-9 09:28:10 | 显示全部楼层 |阅读模式
  在PHP5中,可以在类的属性和方法前面加上一个修饰符(modifier),来对类进行一些访问上的控制。
Public(公开): 可以自由的在类的内部外部读取、修改。
Private(私有): 只能在这个当前类的内部读取、修改。
Protected(受保护):能够在这个类和类的子类中读取和修改。
Private的访问权限
  private 不能直接被外部调用,只能由当前对象调用。前面介绍过关于封装的内容这里不再重复。比如你可以借钱给别人,但不希望别人知道你钱包里面有多少钱。 我们把它用private隐藏起来。
  <?php  class Money{ private $mymoney = 1000; //我有点钱数//借出钱的方法public function loan ($num) {  if ($this->mymoney >= $num) {  $this->mymoney = $this->mymoney - $num;  echo "好的,这里借给你 $num 元,可是我也不多了。<br />";  } else {echo "我无法借 $num 元给你,我没有这么多钱。<br />";}}  }  $mon = new Money();  $mon->loan(300);  $mon->loan(600);  $mon->loan(400);  echo $mon->mymoney;// 这个地方会抛出异常,私有变量不能被外界访问?>
Protected的访问权限
  protected 修饰的属性和方法只能被子类调用。外界无法调用。
  <?php  class Money{  protected $mymoney=1000; //我有点钱数  //借出钱的方法  public function loan($num) {  if ($this->mymoney> = $num) {  $this->mymoney = $this->mymoney - $num;  echo "好的,这里借给你 $num 元,可是我也不多了。<br />";  } else {  echo "我无法借 $num 元给你,我没有这么多钱。<br />";  }  }  }  class SMoney extends Money{  public function getMoney() {  return $this->mymoney;  }  }  $mon = new SMoney();  $mon->loan(900); //借钱  echo "老婆,这里我还有..." . $mon->getMoney() . "元";  //其他人不允许访问,  ?>
Public的访问权限
  数据的隐藏和封装是能够帮助我们保护数据的安全性。Public 修饰的属性和方法,可以被无限制的调用。嘿。。你的钱,不安全了。
  <?php  class Money{  public $mymoney=1000;//我有点钱数  //借出钱的方法  public function loan($num) {  if ($this->mymoney >= $num) {  $this->mymoney = $this->mymoney - $num;  echo "好的,这里借给你 $num 元,可是我也不多了。<br />";  } else {  echo "我无法借 $num 元给你,我没有这么多钱。<br />";  }  }  }  $mon = new Money();  $mon->mymoney = $mon->mymoney - 5000;  echo "我现在只有" . $mon->mymoney;  echo "<br />钱哪里去了,我也不知道。";  ?>

运维网声明 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-362258-1-1.html 上篇帖子: PHP中钩子函数的实现与认识 下篇帖子: PHP反序列化unserialize 出现bool false 解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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