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横向重复区域显示二法
Sep 25 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 PHP
PHP中feof()函数实例测试
Aug 23 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
php实现的验证码文件类实例
Jun 18 PHP
yii2实现根据时间搜索的方法
May 25 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
laravel 时间格式转时间戳的例子
Oct 11 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 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操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
JS backgroundImage控制
2009/05/19 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
乡下人家教学反思
2014/02/01 职场文书
教师评语大全
2014/04/28 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
身份证丢失证明
2015/06/19 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android