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
Windows中安装Apache2和PHP4权威指南
Nov 18 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
php GD绘制24小时柱状图
Jun 28 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
May 02 PHP
php中文验证码实现示例分享
Jan 12 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 PHP
PHP获取数组最后一个值的2种方法
Jan 21 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 PHP
php的单例模式及应用场景详解
Feb 27 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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
php代码检查代理ip的有效性
2016/08/19 PHP
限制复选框的最大可选数
2006/07/01 Javascript
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
setAttribute 与 class冲突解决
2008/02/17 Javascript
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
js no-repeat写法 背景不重复
2009/03/18 Javascript
javascript用户注册提示效果的简单实例
2013/08/17 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python中字符串前面加r的作用
2015/06/04 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
汽车专业人才自我鉴定范文
2013/12/29 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
党支部承诺书范文
2014/03/28 职场文书
自我查摆剖析材料
2014/10/11 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
教育读书笔记
2015/07/02 职场文书
团结主题班会
2015/08/13 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
bose降噪耳机音能消除人声吗
2022/04/19 数码科技