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


Posted in PHP onJanuary 27, 2019

为什么需要访问权限?

防止覆盖变量名称和函数名称

我们下来看一下public的使用,public是可以从任何地方访问的最广泛的访问限定符。

假设A先生开发overlapFuncBase,B先生继承overlapFuncBase创建了overlapFunc的例子。

<?php
class overlapFuncBase {
  public $s = 1;
}
class overlapFunc extends overlapFuncBase { 
  public $s = 2;
}
$obj_overlap = new overlapFunc();
var_dump($obj_overlap);

结果

object(overlapFunc)#1 (1) {
  ["s":"overlapFunc":public] => int(2)
}

在B overlapFunc中,我可以使用由A先生创建的overlapFuncBase,但由于变量名$ s是相同的,覆盖了它。

所以这时就需要访问修饰符。

<?php
class overlapFuncBase {
  private $s = 1;
}
class overlapFunc extends overlapFuncBase { 
  private $s = 2;
}
$obj_overlap = new overlapFunc();
var_dump($obj_overlap)

结果

object(overlapFunc)#1 (2) {
  ["s":"overlapFunc":private] => int(2)
  ["s":"overlapFuncBase":private] => int(1)
}

与第一个代码的不同之处在于我们在变量$ s之前将访问修饰符public更改为private。

private表示你只能在自己的类中访问。

因此,即使是A创建的每个类都有相同变量名,现在也可以获得不同的结果。

访问修饰符的类型

访问修饰符有private、protected和public

对应范围按以下顺序增加

private → protected → public

还有另一个名为static的特殊访问修饰符,如果你指定了类名,你可以在任何地方使用它。

PHP 相关文章推荐
用PHP编程开发“虚拟域名”系统
Oct 09 PHP
PHP的开合式多级菜单程序
Oct 09 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
Jul 04 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
Aug 17 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
实例讲解php将字符串输出到HTML
Jan 27 #PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 #PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 #PHP
PHP的PDO事务与自动提交
Jan 24 #PHP
PHP的PDO连接讲解
Jan 24 #PHP
PHP的PDO预定义常量讲解
Jan 24 #PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 #PHP
You might like
php支付宝系列之电脑网站支付
2018/05/30 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
2018/01/25 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
python解析模块(ConfigParser)使用方法
2013/12/10 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
django2 快速安装指南分享
2018/01/05 Python
python 实现让字典的value 成为列表
2019/12/16 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
关于Pytorch MaxUnpool2d中size操作方式
2020/01/03 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
大学生入党思想汇报
2014/01/01 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
推荐信格式范文
2014/05/09 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2014年度个人工作总结范文
2015/03/09 职场文书
纪律委员竞选稿
2015/11/19 职场文书
领导干部学习心得体会
2016/01/23 职场文书
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
python playwright 自动等待和断言详解
2021/11/27 Python