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.MVC的模板标签系统(五)
Sep 05 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
mac下安装nginx和php
Nov 04 PHP
php+ajax导入大数据时产生的问题处理
Jun 11 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
php面象对象数据库操作类实例
Dec 02 PHP
启用Csrf后POST数据时出现的400错误
Jul 05 PHP
PHP实现简易blog的制作
Oct 24 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
Feb 14 PHP
Laravel find in set排序实例
Oct 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中Session的概念
2006/10/09 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python处理文本文件中控制字符的方法
2017/02/07 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
基于python框架Scrapy爬取自己的博客内容过程详解
2019/08/05 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
使用Django清空数据库并重新生成
2020/04/03 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
PHP如何防止SQL注入
2014/05/03 面试题
安全责任书范文
2014/03/12 职场文书
医师定期考核实施方案
2014/05/07 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
家长会主持词开场白
2015/05/29 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
MySQL学习之基础操作总结
2022/03/19 MySQL
正则表达式基础与常用验证表达式
2022/06/16 Javascript