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原创论坛
Oct 09 PHP
多重?l件?合查?(一)
Oct 09 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
PHP print类函数使用总结
Jun 25 PHP
PHP重定向的3种方式
Mar 07 PHP
如何用php获取文件名后缀
Jun 09 PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 PHP
php 邮件发送问题解决
Mar 22 PHP
php中error与exception的区别及应用
Jul 28 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
Dec 07 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
PHP include_path设置技巧分享
2011/07/03 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
Python正则表达式教程之二:捕获篇
2017/03/02 Python
python使用多进程的实例详解
2018/09/19 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
Django数据库操作之save与update的使用
2020/04/01 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
python实现学生通讯录管理系统
2021/02/25 Python
公司试用期员工自我评价
2014/09/17 职场文书
会计岗位职责
2015/02/03 职场文书
决心书格式范文
2015/09/23 职场文书
高二英语教学反思
2016/03/03 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python