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面向对象的使用教程 简单数据库连接
Nov 25 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Dec 06 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php框架知识点的整理和补充
Mar 01 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访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js 操作符汇总
2014/11/08 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
Python判断Abundant Number的方法
2015/06/15 Python
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
仓库班组长岗位职责
2013/12/12 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
初中同学聚会感言
2014/02/11 职场文书
2015年社区妇联工作总结
2015/04/21 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android