日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我們已經習慣在框架里編寫類庫接口,使用面向對象的方式構建規模以上的應用程序。但是還有很多機會,時時刻刻與php數組打交道。

3分鐘短文 | PHP 空對象怎么用,3個例子教會你

 

PHP版本迭代并加入的對象操作特性非常豐富。今天我們來說一說最基礎的PHP空對象,怎么使用,以及注意事項。

學習時間

如果是數組,我們可能這樣存儲數據:

$aVal = array();
$aVal[key1][var1] = "something";
$aVal[key1][var2] = "something else";

那么有沒有辦法像下面這樣操作數據呢?

(object)$oVal = "";
$oVal->key1->var1 = "something";
$oVal->key1->var2 = "something else";

當然了,這個是偽代碼。PHP中自帶了 stdClass 對象,聲明空對象使用下面的方法:

$x = new stdClass();

stdClass是默認的PHP對象。stdClass沒有屬性,方法或父級。它不支持魔術方法,并且不實現任何接口。

當將標量或數組轉換為Object時,將獲得stdClass的實例。只要需要通用對象實例,就可以使用stdClass。

創建 stdClass 的示例,可以使用下面的任意方式:

$x = new stdClass;
$y = (object) null;        // 同上
$z = (object) 'a';         // 創建屬性 'scalar' = 'a'
$a = (object) array('property1' => 1, 'property2' => 'b'); 

你需要格外注意:

stdClass不是基類! PHP類不會自動從任何類繼承。 所有類都是獨立的,除非它們顯式擴展了另一個類。 在這方面,PHP與許多面向對象的語言不同。

你無法在代碼中定義名為“ stdClass”的類。 該名稱已被系統使用。 你可以定義一個名為“Object”的類。也可以定義一個擴展stdClass的類,但不會獲得任何好處,因為stdClass不執行任何操作。

再舉一個例子:

class CTest {
    public $property1;
}
$t = new CTest;
var_dump($t instanceof stdClass);            // false
var_dump(is_subclass_of($t, 'stdClass'));    // false
echo get_class($t) . "n";                   // 'CTest'
echo get_parent_class($t) . "n";            // false (no parent)

注意,PHP的類是獨立存在的,上面的 CTest 類也絕不是繼承自 stdClass 對象。

寫在最后

通過本文,你應該收獲一個重要的概念,那就是,PHP 的類除非手動嚴格指定繼承類,否則都是獨立存在的。

同時,PHP 提供了標準的 stdClass 對象用于構建空對象。操作數據時可以不用像數組那樣了。但是,拋開數組,你將很大程序上享受不到PHP帶來的數據操作便利。

HAppy coding :_)

分享到:
標簽:對象 PHP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定