当前位置:首页 > 日记 > 正文

PHP实现在对象之外访问其私有属性private及保护属性protected的方法

PHP实现在对象之外访问其私有属性private及保护属性protected的方法

本文实例讲述了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 afunction afunction 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程序设计有所帮助。

相关文章

NodeJS创建最简单的HTTP服务器

NodeJS创建最简单的HTTP服务器

服务器,最简单,电脑软件,NodeJS,HTTP,☆ 引子var http = require('http');http.createServer(function(request, response){ response.writeHead(200, { 'Content-Type': 'text-plain' }); response.end('Hello World\n');}).li…

jQuery实现html table行Tr的复制、

jQuery实现html table行Tr的复制、

计算,删除,功能,电脑软件,html,本文实例讲述了jQuery实现html table行Tr的复制、删除、计算功能。分享给大家供大家参考,具体如下:添加行:function addtr(){ var tr = $("#tb tr").eq(0).clone(); tr.appendTo("#tb"); //tr.insertB…

vue2.0 自定义日期时间过滤器

vue2.0 自定义日期时间过滤器

自定义,过滤器,日期时间,电脑软件,方法一:// template{{a | data}}//scriptdata:{ a: Date.now()}filters: { data:function (input) { var d = new Date(input); var year = d.getFullYear(); var month = d.getMonth() + 1; …

Bootstrap学习笔记之进度条、媒体

Bootstrap学习笔记之进度条、媒体

进度条,对象,媒体,详解,学习笔记,1.基础进度条要写在<div class="progress"></div>里面。<div class="col-md-6"> <div class="progress"> <div class="progress-bar" style="width:30%;"></div> </div></div>2.多彩进度条<div c…

微信小程序实现选项卡功能

微信小程序实现选项卡功能

选项卡,功能,程序,电脑软件,微信小,本文实例为大家分享了微信小程序选项卡功能展示的具体代码,供大家参考,具体内容如下首先看看微信小程序上的选项卡的效果:原理呢,就是先布局好(这就不必说了吧),然后在上面的每一个选项卡上都定义一个同样的点击…

Vue中使用vux的配置详解

Vue中使用vux的配置详解

配置详解,电脑软件,Vue,vux,Vue中使用vux的配置,分为两种情况:一、根据vux文档直接安装,无需手动配置npm install vue-cli -g // 如果还没安装vue init airyland/vux2 my-project // 创建名为 my-project 的模板cd my-project // 进入项目n…

Server.MapPath |  错误 ’ASP 017

Server.MapPath | 错误 ’ASP 017

字符,错误,不允许,电脑软件,MapPath,未启用父路径 症状举例: Server.MapPath() 错误 &rsquo;ASP 0175 : 80004005&rsquo; 不允许的 Path 字符 /0709/dqyllhsub/news/OpenDatabase.asp,行 4 在 MapPath 的 Path 参数中不允…

win2003 IIS 500内部服务器错误(典

win2003 IIS 500内部服务器错误(典

数据库,服务器,错误,解决方案,典型,IIS正确设置步骤: 一、启用Asp支持 Windows Server 2003 默认安装,是不安装 IIS 6 的,需要另外安装。安装完 IIS 6,还需要单独开启对于 ASP 的支持。 第一步,启用Asp,进入:控制面板 -> 管理工具 ->IIS(Internet…

INdesign CS6怎么在A4的页面添加A3

INdesign CS6怎么在A4的页面添加A3

页面,尺寸,电脑软件,INdesign,INdesign CS6中想要在原有的文档里面添加一个别的尺寸的页面,该怎么设置页面尺寸呢?下面我们就来看看详细的教程。软件名称:Adobe InDesign CS6 中文免费版软件大小:878.42MB更新时间:2014-05-261、打开一个ID文档,…

Spring获取ApplicationContext对象

Spring获取ApplicationContext对象

工具类,方法,对象,电脑软件,Spring, Spring获取ApplicationContext对象工具类的实现方法(1)实现的工具类:package com.util; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPath…

安装iis程序无法复制文件CONVLOG.E

安装iis程序无法复制文件CONVLOG.E

复制文件,安装,解决办法,程序,电脑软件,要装IIS测试一个分类信息的网站,可是系统盘不在,只能从网上下载,结果在安装的时候出现一个错误提示&ldquo;安装程序无法复制文件staxmem.dl_&rdquo;,上网找了下资料,说是在开始-运行中输入&rdquo;esentutl …

windows系统用cmd命令安装及卸载服

windows系统用cmd命令安装及卸载服

安装,系统,卸载,命令,服务,方法一1、开始 ->运行 ->cmd。2、cd到C:WINDOWSMicrosoft.NETFrameworkv2.0.50727(Framework版本号按IIS配置)。3、 安装服务: 运行命令行 InstallUtil.exe E:/test.exe;卸载服务: 运行命令行 InstallUtil.exe -u E:…