国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

如何直接訪問php實(shí)例對象中的private屬性詳解

2024-05-05 00:00:29
字體:
供稿:網(wǎng)友

前言

本文主要介紹了關(guān)于如何直接訪問php實(shí)例對象中private屬性的相關(guān)內(nèi)容,在介紹關(guān)鍵部分之前,我們先回顧一下php面向?qū)ο蟮脑L問控制。

對屬性或方法的訪問控制,是通過在前面添加關(guān)鍵字 public(公有),protected(受保護(hù))或 private(私有)來實(shí)現(xiàn)的。被定義為公有的類成員可以在任何地方被訪問。被定義為受保護(hù)的類成員則可以被其自身以及其子類和父類訪問。被定義為私有的類成員則只能被其定義所在的類訪問。

類屬性必須定義為公有,受保護(hù),私有之一。如果用 var 定義,則被視為公有。

請看下面示例代碼(來自官方文檔:http://php.net/manual/en/language.oop5.visibility.php

<?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; // Worksecho $obj->protected; // Fatal Errorecho $obj->private; // Fatal Error$obj->printHello(); // Shows Public, Protected and Private

如上面代碼所示,我們用一個類的實(shí)例對象訪問一個類的私有或者受保護(hù)的成員屬性時,會拋出一個致命錯誤。

下面是文章標(biāo)題要做的事情,訪問php實(shí)例對象的私有屬性。

按照我們正常的做法,一般都會是寫一個public的方法,再返回這個屬性。

public function getPrivate(){ return $this->private;}

事實(shí)是我們本就應(yīng)該這樣做。

下面說是只是特殊場景下的使用方法,平時寫代碼希望大家不要亂來。

<?phpclass A { private $a = 'self'; public function test() {  $other = new self();  $other->a = 'other';  var_dump($other->a); }}$aa = new A();$aa->test();

如上代碼所示,我們new了一個新的A對象出來,再給這個實(shí)例的私有屬性a賦值,竟然沒有報錯!

解釋:因?yàn)橥粋€類的對象即使不是同一個實(shí)例也可以互相訪問對方的私有與受保護(hù)成員。這是由于在這些對象的內(nèi)部具體實(shí)現(xiàn)的細(xì)節(jié)都是已知的。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 灵武市| 桓仁| 武乡县| 西贡区| 眉山市| 青浦区| 稷山县| 衡东县| 阜城县| 石屏县| 苍山县| 治多县| 广宁县| 积石山| 扶沟县| 托里县| 新晃| 板桥市| 濉溪县| 乐亭县| 保定市| 和林格尔县| 宝山区| 正阳县| 库伦旗| 青海省| 宁武县| 郴州市| 徐水县| 汤阴县| 武川县| 贵州省| 凤城市| 沂南县| 始兴县| 宽城| 陆良县| 綦江县| 贵州省| 肥东县| 咸阳市|