• 售前

  • 售后

热门帖子
入门百科

php中访问修饰符的知识点总结

[复制链接]
尘埃384 显示全部楼层 发表于 2021-10-26 14:20:24 |阅读模式 打印 上一主题 下一主题
为什么需要访问权限?
防止覆盖变量名称和函数名称
我们下来看一下public的使用,public是可以从任何地方访问的最广泛的访问限定符。
假设A老师开发overlapFuncBase,B老师继承overlapFuncBase创建了overlapFunc的例子。
  1. <?php
  2. class overlapFuncBase {
  3.   public $s = 1;
  4. }
  5. class overlapFunc extends overlapFuncBase {
  6.   public $s = 2;
  7. }
  8. $obj_overlap = new overlapFunc();
  9. var_dump($obj_overlap);
复制代码
效果
  1. object(overlapFunc)#1 (1) {
  2.   ["s":"overlapFunc":public] => int(2)
  3. }
复制代码
在B overlapFunc中,我可以使用由A老师创建的overlapFuncBase,但由于变量名$ s是雷同的,覆盖了它。
以是这时就需要访问修饰符。
  1. <?php
  2. class overlapFuncBase {
  3.   private $s = 1;
  4. }
  5. class overlapFunc extends overlapFuncBase {
  6.   private $s = 2;
  7. }
  8. $obj_overlap = new overlapFunc();
  9. var_dump($obj_overlap)
复制代码
效果
  1. object(overlapFunc)#1 (2) {
  2.   ["s":"overlapFunc":private] => int(2)
  3.   ["s":"overlapFuncBase":private] => int(1)
  4. }
复制代码
与第一个代码的差别之处在于我们在变量$ s之前将访问修饰符public更改为private。
private表现你只能在本身的类中访问。
因此,纵然是A创建的每个类都有雷同变量名,现在也可以获得差别的效果。
访问修饰符的范例
访问修饰符有private、protected和public
对应范围按以下序次增加
private → protected → public
还有另一个名为static的特别访问修饰符,假如你指定了类名,你可以在任何地方使用它。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作