PHP实现在对象之外访问其私有属性private及保护属性protected的方法


Posted in PHP onNovember 20, 2017

本文实例讲述了PHP实现在对象之外访问其私有属性private及保护属性protected的方法。分享给大家供大家参考,具体如下:

public 表示全局的访问权限,类内部外部子类都可以访问;
private表示私有的访问权限,只有本类内部可以使用;
protected表示受保护的访问权限,只有本类或子类或父类中可以访问;

比较经典的用法示例如下:

<?php
 //父类
 class father{
 public function a(){
 echo "function a<br/>";
 }
 private function b(){
 echo "function b<br/>";
 }
 protected function c(){
 echo "function c<br/>";
 }
 }
 //子类
 class child extends father{
 function d(){
 parent::a();//调用父类的a方法
 }
 function e(){
 parent::c(); //调用父类的c方法
 }
 function f(){
 parent::b(); //调用父类的b方法
 }
 }
 $father=new father();
 $father->a();
// $father->b(); //显示错误 外部无法调用私有的方法 Call to protected method father::b()
// $father->c(); //显示错误 外部无法调用受保护的方法Call to private method father::c()
 $chlid=new child();
 $chlid->d();
 $chlid->e();
// $chlid->f();//显示错误 无法调用父类private的方法 Call to private method father::b()
?>

运行结果:

function a
function a
function c

在对象之外,php访问私有及保护属性实现方法如下:

class yunke
{
 protected $a = 55;
 private $b = 66;
 public function merge()
 {
 $result = clone $this;
 $result->a=88;
 $result->b=99;
 return $result;
 }
 public function show()
 {
 echo $this->a;
 echo $this->b;
 }
}
$test = new yunke;
$test->show();
$test2=$test->merge();
$test2->show();

输出:

55668899

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
php猜单词游戏
Sep 29 PHP
yii用户注册表单验证实例
Dec 26 PHP
php简单统计在线人数的方法
May 10 PHP
PHP自定义多进制的方法
Nov 03 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
PHP 实现文件压缩解压操作的方法
Jun 14 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 PHP
Nginx+php配置文件及原理解析
Dec 09 PHP
PHP空值检测函数与方法汇总
Nov 19 #PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 #PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 #PHP
swoole和websocket简单聊天室开发
Nov 18 #PHP
php单元测试phpunit入门实例教程
Nov 17 #PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 #PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 #PHP
You might like
获取PHP警告错误信息的解决方法
2013/06/03 PHP
JavaScript的public、private和privileged模式
2009/12/28 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
详解微信小程序 相对定位和绝对定位
2017/05/11 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
python实现实时监控文件的方法
2016/08/26 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
Python实现把类当做字典来访问
2019/12/16 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
孝老爱亲模范事迹
2014/01/24 职场文书
学校社会实践活动总结
2014/07/03 职场文书
文案策划专业自荐信
2014/07/07 职场文书
优秀团队申报材料
2014/12/26 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang