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代码
Dec 06 PHP
PHP 判断变量类型实现代码
Oct 23 PHP
PHP中extract()函数的妙用分析
Jul 11 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
PHP中Fatal error session_start()错误解决步骤
Aug 05 PHP
php中实现获取随机数组列表的自定义函数
Apr 02 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
Apr 23 PHP
php传值和传引用的区别点总结
Nov 19 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 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两种快速排序算法实例
2015/02/15 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
过虑特殊字符输入的js代码
2010/08/05 Javascript
常用一些Javascript判断函数
2012/08/14 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
Vue组件的使用教程详解
2018/01/05 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Python中bisect的使用方法
2019/12/31 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
python使用Word2Vec进行情感分析解析
2020/07/31 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
后勤自我鉴定
2013/10/13 职场文书
一年级学生期末评语
2014/04/21 职场文书
分公司负责人任命书
2014/06/04 职场文书
党章培训心得体会
2014/09/04 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
2016年春节慰问信息
2015/03/25 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL