怎样直接接见php实例对象的private属性【php教程】,php
作者:搜教程发布时间:2019-12-01分类:PHP教程浏览:35评论:0
导读:在引见症结部份之前,我们先回忆一下php面向对象的接见掌握。对属性或要领的接见掌握,是经由过程在前面增加症结字public(公有),protected(受庇护)或...
在引见症结部份之前,我们先回忆一下php面向对象的接见掌握。
对属性或要领的接见掌握,是经由过程在前面增加症结字 public(公有),protected(受庇护)或 private(私有)来完成的。被定义为公有的类成员能够在任何地方被接见。被定义为受庇护的类成员则能够被其本身以及其子类和父类接见。被定义为私有的类成员则只能被其定义地点的类接见。
类属性必需定义为公有,受庇护,私有之一。假如用 var 定义,则被视为公有。
请看下面示例代码(来自官方文档 http://php.net/manual/en/lang...:
<?php /** * Define MyClass */ class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj = new MyClass(); echo $obj->public; // Works echo $obj->protected; // Fatal Error echo $obj->private; // Fatal Error $obj->printHello(); // Shows Public, Protected and Private
如上面代码所示,我们用一个类的实例对象接见一个类的私有或许受庇护的成员属性时,会抛出一个致命毛病。
下面是文章题目要做的事变,接见php实例对象的私有属性。
根据我们平常的做法,平常都会是写一个public的要领,再返回这个属性。
public function getPrivate() { return $this->private; }
事实是我们本就应当如许做。
下面说是只是特别场景下的使用要领,日常平凡写代码愿望人人不要瞎搅。
<?php class A { private $a = 'self'; public function test() { $other = new self(); $other->a = 'other'; var_dump($other->a); } } $aa = new A(); $aa->test();
如上代码所示,我们new了一个新的A对象出来,再给这个实例的私有属性a赋值,居然没有报错!
诠释:因为同一个类的对象纵然不是同一个实例也能够相互接见对方的私有与受庇护成员。这是因为在这些对象的内部细致完成的细节都是已知的。
以上就是怎样直接接见php实例对象的private属性的细致内容,更多请关注ki4网别的相干文章!
标签:php
相关推荐
- 推荐给新手的四款PHP集成开发环境软件_php教程,php
- php中的绘图技术详解_php教程,php,绘图
- 用 Composer 开源组件构建自己的 PHP 框架_php教程,php,框架,mvc
- 了解php判断电子邮件是否正确方法_php教程,php,电子邮件
- 推荐给初学者必看的PHP书籍_php教程,php
- 手把手教你在php中整数判断的方法_php教程,php,判断整数
- 三分钟带你了解PHP四大主流框架的优缺点_php教程,php,框架
- PHP DIY系列之自定义配置和路由_php教程,php,自定义配置,路由
- php获取当前时间戳、日期并精确到毫秒(三种方法)_php教程,php
- 教你用php将二维码和文字结合到一个背景图片上!_php教程,php
你 发表评论:
欢迎- PHP教程排行
- 最新文章
- 广而告之