欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年10月12日 11:41:31   作者:hncg  
這篇文章主要給大家介紹了關(guān)于如何直接訪問php實(shí)例對(duì)象中private屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

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

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

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

請(qǐng)看下面示例代碼(來自官方文檔: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è)類的實(shí)例對(duì)象訪問一個(gè)類的私有或者受保護(hù)的成員屬性時(shí),會(huì)拋出一個(gè)致命錯(cuò)誤。

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • php變量范圍介紹

    php變量范圍介紹

    變量的范圍即它定義的上下文背景(也就是它生效的范圍)。大部分的 PHP 變量只有一個(gè)單獨(dú)的范圍。這個(gè)單獨(dú)的范圍跨度同樣包含了 include 和 require 引入的文件
    2012-10-10
  • php實(shí)現(xiàn)簽到功能的方法實(shí)例分析

    php實(shí)現(xiàn)簽到功能的方法實(shí)例分析

    這篇文章主要介紹了php實(shí)現(xiàn)簽到功能的方法,結(jié)合實(shí)例形式分析了php基于數(shù)據(jù)庫(kù)及時(shí)間判斷操作實(shí)現(xiàn)簽到功能的相關(guān)技巧,需要的朋友可以參考下
    2017-12-12
  • php利用iframe實(shí)現(xiàn)無刷新文件上傳功能的代碼

    php利用iframe實(shí)現(xiàn)無刷新文件上傳功能的代碼

    上傳原理很簡(jiǎn)單就是利用表單的打開方式為iframe的id名,這樣就可以在當(dāng)前頁(yè)面的iframe打來了,實(shí)現(xiàn)文件上傳,再利用js返回上傳結(jié)果。
    2011-09-09
  • Mysql數(shù)據(jù)庫(kù)操作類( 1127版,提供源碼下載 )

    Mysql數(shù)據(jù)庫(kù)操作類( 1127版,提供源碼下載 )

    Mysql數(shù)據(jù)庫(kù)操作類,學(xué)習(xí)php的朋友可以參考下。
    2010-12-12
  • php封裝的連接Mysql類及用法分析

    php封裝的連接Mysql類及用法分析

    這篇文章主要介紹了php封裝的連接Mysql類及用法,基于php封裝了簡(jiǎn)單的MySQL數(shù)據(jù)庫(kù)的連接、查詢、遍歷等技巧,并附帶說明了其具體用法,需要的朋友可以參考下
    2015-12-12
  • XHProf報(bào)告字段含義的解析

    XHProf報(bào)告字段含義的解析

    下面小編就為大家?guī)硪黄猉HProf報(bào)告字段含義的解析。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • PHP精確計(jì)算功能示例

    PHP精確計(jì)算功能示例

    這篇文章主要介紹了PHP精確計(jì)算功能,結(jié)合實(shí)例形式分析了php進(jìn)行針對(duì)加減乘除等數(shù)學(xué)運(yùn)算的精確方法,涉及bcadd、bcsub、bcmul、bcdiv等函數(shù)的使用技巧,需要的朋友可以參考下
    2016-11-11
  • 解析PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)

    解析PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)

    本篇文章是對(duì)PHP中數(shù)組元素升序、降序以及重新排序的函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • php 安全過濾函數(shù)代碼

    php 安全過濾函數(shù)代碼

    php 安全過濾函數(shù)代碼,防止用戶惡意輸入內(nèi)容。
    2011-05-05
  • PHP中幾種常見的超時(shí)處理全面總結(jié)

    PHP中幾種常見的超時(shí)處理全面總結(jié)

    在PHP開發(fā)中工作里非常多使用到超時(shí)處理到超時(shí)的場(chǎng)合,我說幾個(gè)場(chǎng)景,方便需要的朋友
    2012-09-09

最新評(píng)論