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 相关文章推荐
JS实现php的伪分页
May 25 PHP
php google或baidu分页代码
Nov 26 PHP
php 中文和编码判断代码
May 16 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
php 常用的系统函数
Feb 07 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 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企业级应用之常见缓存技术篇
2011/01/27 PHP
php一个找二层目录的小东东
2012/08/02 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
新浪的图片新闻效果
2007/01/13 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python根据服务获取端口号的方法
2019/09/25 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
Python descriptor(描述符)的实现
2020/11/15 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
毕业生找工作的自我评价
2013/10/18 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
中学生逃课检讨书
2015/02/17 职场文书
试用期辞职信范文
2015/03/02 职场文书
Python制作春联的示例代码
2022/01/22 Python