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 daodb插入、更新与删除数据
Mar 19 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
深入PHP获取随机数字和字母的方法详解
Jun 06 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
如何离线执行php任务
Feb 21 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
Sep 03 PHP
laravel-admin的图片删除实例
Sep 30 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 PHP
Linux系统下安装PHP7.3版本
Jun 26 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更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
vue移动端监听滚动条高度的实现方法
2018/09/03 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
Python tkinter事件高级用法实例
2018/01/31 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Python any()函数的使用方法
2019/10/28 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
运动会广播稿500字
2014/01/28 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
市场营销计划书
2015/01/17 职场文书
团代会邀请函
2015/02/02 职场文书
个性发展自我评价2015
2015/03/09 职场文书
入党群众意见范文
2015/06/02 职场文书
如何撰写创业策划书
2019/06/27 职场文书