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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
phpmyadmin的#1251问题
Nov 25 PHP
php 文件上传系统手记
Oct 26 PHP
PHP中数组的三种排序方法分享
May 07 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php stream_get_meta_data返回值
Sep 29 PHP
php实现递归的三种基本方式
Jul 04 PHP
PHP身份证校验码计算方法
Aug 10 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
PHP数组array类常见操作示例
May 15 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会话(Session)实现用户登陆功能
2013/06/29 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
jQuery Ajax使用 全解析
2010/12/15 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
python中的多重继承实例讲解
2014/09/28 Python
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
如何查找网页漏洞
2016/06/22 面试题
家长学校工作方案
2014/05/07 职场文书
监察建议书格式
2014/05/19 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
辞职书格式样本
2015/02/26 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS