主頁(yè) > 知識(shí)庫(kù) > 如何直接訪問(wèn)php實(shí)例對(duì)象中的private屬性詳解

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

熱門(mén)標(biāo)簽:個(gè)性化地圖標(biāo)注在線 深圳400電話辦理那家好 施工地圖標(biāo)注怎么做 百度地圖標(biāo)注名編輯 怎么在高德地圖標(biāo)注行走軌跡 百度地圖標(biāo)注飯店位置怎么 襄陽(yáng)房產(chǎn)電銷(xiāo)機(jī)器人招商 安徽移動(dòng)外呼系統(tǒng) 清遠(yuǎn)陽(yáng)山400電話號(hào)碼如何申請(qǐng)

前言

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

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

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

請(qǐng)看下面示例代碼(來(lái)自官方文檔: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; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private

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

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

按照我們正常的做法,一般都會(huì)是寫(xiě)一個(gè)public的方法,再返回這個(gè)屬性。

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

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

下面說(shuō)是只是特殊場(chǎng)景下的使用方法,平時(shí)寫(xiě)代碼希望大家不要亂來(lái)。

?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了一個(gè)新的A對(duì)象出來(lái),再給這個(gè)實(shí)例的私有屬性a賦值,竟然沒(méi)有報(bào)錯(cuò)!

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • php面向?qū)ο笾衧tatic靜態(tài)屬性和靜態(tài)方法的調(diào)用
  • PHP var_dump遍歷對(duì)象屬性的函數(shù)與應(yīng)用代碼
  • php中類(lèi)和對(duì)象:靜態(tài)屬性、靜態(tài)方法
  • PHP實(shí)現(xiàn)在對(duì)象之外訪問(wèn)其私有屬性private及保護(hù)屬性protected的方法
  • PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類(lèi)文件,命名空間
  • php面向?qū)ο笾衧tatic靜態(tài)屬性與方法的內(nèi)存位置分析
  • PHP實(shí)現(xiàn)刪除多重?cái)?shù)組對(duì)象屬性并重新賦值的方法
  • PHP 面向?qū)ο蟪绦蛟O(shè)計(jì)(oop)學(xué)習(xí)筆記 (二) - 靜態(tài)變量的屬性和方法及延遲綁定
  • PHP 5.0對(duì)象模型深度探索之屬性和方法
  • PHP獲取對(duì)象屬性的三種方法實(shí)例分析

標(biāo)簽:中衛(wèi) 南昌 駐馬店 欽州 臨夏 延邊 阜陽(yáng) 黑河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何直接訪問(wèn)php實(shí)例對(duì)象中的private屬性詳解》,本文關(guān)鍵詞  如何,直接,訪問(wèn),php,實(shí)例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何直接訪問(wèn)php實(shí)例對(duì)象中的private屬性詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于如何直接訪問(wèn)php實(shí)例對(duì)象中的private屬性詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章