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为php增加openssl模块的方法
Jun 14 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
PHP闭包(Closure)使用详解
May 02 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
PHP连接MySQL数据库并以json格式输出
May 21 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 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-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
JS实现放烟花效果
2020/03/10 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
python抓取京东商城手机列表url实例代码
2013/12/18 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
python多线程分块读取文件
2019/08/29 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
python正则表达式实例代码
2020/03/03 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
市场营销专业毕业生求职信
2014/03/26 职场文书
大型活动组织方案
2014/05/10 职场文书
如何写辞职书
2015/02/26 职场文书
公司庆典主持词
2015/07/04 职场文书