PHP能夠用 $object = new StdClass(); 建立一個沒有成員方法和屬性的空對象。
不少時候,程序員們會將一些參數配置項之類的信息放在數組中使用,可是數組操做起來並非很方便,不少時候使用對象操做符->xxx比數組操做符['xxx']要方便很多。因而就須要建立一個空的對象,來將須要的屬性名和屬性值存儲到對象中。
然而PHP中沒有Javascript裏面 var object = {}; 這樣的語法。
PHP建立空對象至少能夠使用3種方法實現
方法一:寫一個空類
勉強能完成任務,可是特別沒有格局。php
<?php class cfg { } $cfg = new cfg; $cfg->dbhost = 'www.51-n.com'; echo $cfg->dbhost; ?>
方法二:實例化 StdClass 類
StdClass類是PHP中的一個基類,然而比較詭異的是PHP手冊裏面血幾乎沒有提到過這個類,至少在PHP索引中是搜索不到這個類的。
StdClass類沒有任何成員方法,也沒有任何成員屬性,實例化之後就是一個空對象。程序員
<?php $cfg = new StdClass(); $cfg->dbhost = 'www.51-n.com'; echo $cfg->dbhost; ?>
方法三:折騰json_encode()和json_decode()
這種方法就是把一個空的JSON對象經過json_decode()轉變爲PHP的StdClass空對象。
一樣的道理,你能夠將一個數組經過json_encode()轉成JSON,再經過json_decode()將JSON轉爲StdClass對象,
關於這兩個函數,能夠參考PHP手冊。json
<?php $cfg = json_decode('{}'); $cfg->dbhost = 'www.51-n.com'; echo $cfg->dbhost; ?>