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
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
php通用防注入程序 推荐
Feb 26 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
Jun 26 PHP
php5.3不能连接mssql数据库的解决方法
Dec 27 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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使用正则表达式获取图片url的方法
2015/01/16 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
js实现验证码干扰(静态)
2021/02/22 Javascript
python实现随机密码字典生成器示例
2014/04/09 Python
利用Python查看目录中的文件示例详解
2017/08/28 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
公司门卫工作职责
2014/06/28 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
2014年个人售房协议书
2014/10/30 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
会议欢迎词
2015/01/23 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
mysql事务隔离级别详情
2021/10/24 MySQL
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫