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支持页面回退的两种方法
Jan 10 PHP
火车头discuz6.1 完美采集的php接口文件
Sep 13 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
Jun 23 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
php调用shell的方法
Nov 05 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP date函数常用时间处理方法
May 11 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
laravel开发环境homestead搭建过程详解
Jul 03 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
人族 Terran 基本策略
2020/03/14 星际争霸
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
又一个小巧的图片预加载类
2007/05/05 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
九种原生js动画效果
2015/11/11 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
随机生成10个不重复的0-100的数字(实例讲解)
2017/08/16 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python subprocess模块学习总结
2014/03/13 Python
跟老齐学Python之编写类之三子类
2014/10/11 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
Python编程之序列操作实例详解
2017/07/22 Python
Python实现的计数排序算法示例
2017/11/29 Python
Python中偏函数用法示例
2018/06/07 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
详解python中eval函数的作用
2019/10/22 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
浅谈python出错时traceback的解读
2020/07/15 Python
详解pandas映射与数据转换
2021/01/22 Python
Html5之svg可缩放矢量图形_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
教师自荐书
2013/10/08 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python