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-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP面试题之文件目录操作
Oct 15 PHP
PHP实现简单实用的分页类代码
Apr 08 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
THINKPHP3.2使用soap连接webservice的解决方法
Dec 13 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
PHP多维数组指定多字段排序的示例代码
May 16 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 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/05/09 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
Jquery 表格合并的问题分享
2011/09/17 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
TensorFlow数据输入的方法示例
2018/06/19 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
利用Python实现自动扫雷小脚本
2020/12/17 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
机电工程专业应届生求职信
2013/10/03 职场文书
出纳会计岗位职责
2014/03/12 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
毕业典礼致辞
2015/07/29 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python