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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
抓取YAHOO股票报价的类
May 15 PHP
10个实用的PHP代码片段
Sep 02 PHP
PHP可逆加密/解密函数分享
Sep 25 PHP
php数据库备份还原类分享
Mar 20 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
php表单处理操作
Nov 16 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
Linux下 php7安装redis的方法
Nov 01 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 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+MySQL插入操作实例
2015/01/21 PHP
Smarty模板配置实例简析
2019/07/20 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
原生js实现自定义滚动条
2021/01/20 Javascript
python开发之thread实现布朗运动的方法
2015/11/11 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python读取视频流提取视频帧的两种方法
2020/10/22 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
农药学硕士毕业生自荐信
2013/09/25 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
安全承诺书
2015/01/19 职场文书
世界文化遗产导游词
2015/02/13 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
茶花女读书笔记
2015/06/29 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
python实现简单反弹球游戏
2021/04/12 Python
利用javaScript处理常用事件详解
2021/04/14 Javascript
JavaScript 实现页面滚动动画
2021/04/24 Javascript
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers