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 array_multisort()函数的使用札记
Jul 03 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
CodeIgniter生成网站sitemap地图的方法
Nov 13 PHP
PHP Session机制简介及用法
Aug 19 PHP
PHP类的反射用法实例
Nov 03 PHP
php实现parent调用父类的构造方法与被覆写的方法
Feb 11 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
PHP 搜索查询功能实现
Nov 29 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 PHP
Yii框架常见缓存应用实例小结
Sep 09 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 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判断客户端类型
2016/10/14 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
javascript 表单规则集合对象
2009/07/21 Javascript
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
2014/03/03 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
vue中七牛插件使用的实例代码
2017/07/28 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
Python记录详细调用堆栈日志的方法
2015/05/05 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
使用python实现滑动验证码功能
2019/08/05 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
生物技术专业毕业生求职信范文
2013/12/14 职场文书
春季防火方案
2014/05/10 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
酒店员工手册范本
2015/05/14 职场文书
小学体育组工作总结
2015/08/13 职场文书
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏