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
做一个有下拉功能的留言版
Oct 09 PHP
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
使用eAccelerator加密PHP程序
Oct 03 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
thinkphp模板的包含与渲染实例分析
Nov 26 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
PHP常用的小程序代码段
Nov 14 PHP
php实现简单四则运算器
Nov 29 PHP
PHP7变量处理机制修改
Mar 09 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字符串截取问题
2006/11/28 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
2014/11/13 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
心理学专业毕业生推荐信范文
2013/11/21 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
检讨书范文
2015/01/27 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏