本文实例讲述了PHP实现在对象之外访问其私有属性private及保护属性protected的方法。,具体如下:

public 表示全局的访问权限,类内部外部子类都可以访问;

private表示私有的访问权限,只有本类内部可以使用;

protected表示受保护的访问权限,只有本类或子类或父类中可以访问;

比较经典的用法示例如下:

//父类

class father{

public function a(){

echo "function a
";

}

private function b(){

echo "function b
";

}

protected function c(){

echo "function c
";

}

}

//子类

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)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

php protected 属性,PHP实现在对象之外访问其私有属性private及保护属性protected的方法...相关推荐

  1. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  2. Spring IOC 容器源码分析 - 填充属性到 bean 原始对象

    1. 简介 本篇文章,我们来一起了解一下 Spring 是如何将配置文件中的属性值填充到 bean 对象中的.我在前面几篇文章中介绍过 Spring 创建 bean 的流程,即 Spring 先通过反 ...

  3. python属性使用教程_Python对象的属性访问过程详解

    只想回答一个问题: 当编译器要读取obj.field时, 发生了什么? 看似简单的属性访问, 其过程还蛮曲折的. 总共有以下几个step: 1. 如果obj 本身(一个instance )有这个属性, ...

  4. php中获取对象的属性值,PHP获取对象属性的三种方法

    今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性.记得以前看到的代码都是用get_object_vars() ...

  5. php遍历对象属性_php中遍历对象的方法

    * 遍历对象 * 1.仅能遍历属性,方法不可遍历 * 2.外部遍历仅能查看公共可见属性 * 3.如果要查看全部属性,需要在类中创建外部接口方法来实现 * 4.最终结果以关联数组格式呈现,使用forea ...

  6. java根据属性获取对象_java反射工具类--通过指定属性名,获取/设置对象属性值

    java对象通过点运算符操作对象属性的方式没法使用for,while等循环,此工具主要解决这一问题. 例如:有一对象包含属性有一定规律 obj1: { name1: "张三", a ...

  7. java socket中属性详解_前端开发:关于Vue组件中的data属性值是函数而不是对象的详解...

    最近在搞关于前端开发的基础知识归纳,发现了不少经典知识点,那么本篇博文就来分享一个经典的知识点:Vue组件中的data属性值为什么是函数而不是对象.首先来了解一下Vue组件的使用理念:在Vue组件使用 ...

  8. 比较一个对象,如是这个对象的某一个属性不为空,把他copy到另一个有这个属性的bean中...

    2019独角兽企业重金招聘Python工程师标准>>> import java.beans.PropertyDescriptor; import java.lang.reflect. ...

  9. SSM中向后端传递的属性为多个对象的实现方法

    场景 在机票预定的业务场景中,jsp页面需要记录航班相关信息和联系人相关信息还要记录多个乘客的相关信息.这就需要在向后端传值时某乘客属性为多个对象. 实现 所有的数据封装成一个Moel类,其中航班信息 ...

最新文章

  1. linux进程状态d状态,Linux下进程的状态
  2. LeetCode 961 N-Repeated Element in Size 2N Array --python,java解法
  3. 端计算(4)-kotlin(2)
  4. java异常处理,需要考虑的流程
  5. LDA-Latent Dirichlet Allocation 学习笔记
  6. 【报告分享】元宇宙发展研究报告2.0-清华大学.pdf(附下载链接)
  7. A study on ILC for linear discrete systems with single delay
  8. 【无标题】计算机一级考试MS OFFICE选择题题库10套及答案
  9. 每次刷新页面时总会先闪一下空白再出现背景图片的解决
  10. DFI(Deep/DynamicFlow Inspection,深度/动态流检测)
  11. Spring Boot 2.1.2配置文件参考配置项官方谷歌翻译版本
  12. TiDB-explain详解
  13. A1、A2、A3、A4纸都是多大尺寸
  14. 中国十大电子商务网站排名
  15. 华为机试HJ69:矩阵乘法
  16. 图书系统(查询图书内容)
  17. Leetcode 刷题记录
  18. play框架2.5.6教程——使用play控制台
  19. 灰色的心情,贴几首我们一起唱的歌吧
  20. 21个微信快速加好友方法

热门文章

  1. 初始化CISCO路由器和交换机密码
  2. as3直接播放flv基本代码
  3. SDE要素类导出为shp格式文件
  4. java获取jsp页面参数_jsp页面中获取servlet请求中的参数方法总结
  5. 先使用皮尔逊相似性特征选择来训练随机森林
  6. tensorflow生产环境部署
  7. 数学等于号是=那三个横杠是什么符
  8. ip的正则表达式 java,项目实战:Java正则表达式验证IP地址
  9. 将jar deploy到私服nexus常见问题
  10. 数据集超越MS COCO,2020智源x旷视Objects365物体检测挑战赛开赛