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 相关文章推荐
分页显示Oracle数据库记录的类之一
Oct 09 PHP
初探PHP5
Oct 09 PHP
第九节--绑定
Nov 16 PHP
PHP 程序员也要学会使用“异常”
Jun 16 PHP
php 分库分表hash算法
Nov 12 PHP
PHP小教程之实现链表
Jun 09 PHP
php中in_array函数用法探究
Nov 25 PHP
十大使用PHP框架的理由
Sep 26 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
Dec 21 PHP
PHP读取Excel类文件
May 15 PHP
php实现微信支付之现金红包
May 30 PHP
PHP堆栈调试操作简单示例
Jun 15 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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
深入理解python多进程编程
2016/06/12 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
python版本五子棋的实现代码
2018/12/11 Python
python基础梳理(一)(推荐)
2019/04/06 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
python爬取代理ip的示例
2020/12/18 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
幼儿园毕业教师感言
2014/02/21 职场文书
大学班级学风建设方案
2014/05/01 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
学校推普周活动总结
2015/05/07 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS