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
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
Aug 07 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
php设置允许大文件上传示例代码
Mar 10 PHP
php计算当前程序执行时间示例
Apr 24 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
PHP实现图片上传并压缩
Dec 22 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
PHP实现的统计数据功能详解
Dec 06 PHP
PHP文件与目录操作示例
Dec 24 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
JS 树形递归实例代码
2010/05/18 Javascript
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
2012/12/21 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
python字符串,数值计算
2016/10/05 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
C#的几个面试问题
2016/05/22 面试题
Linux机考试题
2015/10/16 面试题
酒店公关部经理岗位职责
2013/11/24 职场文书
个人评价范文分享
2014/01/11 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
《比的意义》教学反思
2016/02/18 职场文书
vue动态绑定style样式
2022/04/20 Vue.js