PHP使用new StdClass()創(chuàng)建空對(duì)象的方法分析
本文實(shí)例講述了PHP使用new StdClass()創(chuàng)建空對(duì)象的方法。分享給大家供大家參考,具體如下:
PHP可以用 $object = new StdClass(); 創(chuàng)建一個(gè)沒(méi)有成員方法和屬性的空對(duì)象。
很多時(shí)候,程序員們會(huì)將一些參數(shù)配置項(xiàng)之類(lèi)的信息放在數(shù)組中使用,但是數(shù)組操作起來(lái)并不是很方便,很多時(shí)候使用對(duì)象操作符->xxx比數(shù)組操作符['xxx']要方便不少。于是就需要?jiǎng)?chuàng)建一個(gè)空的對(duì)象,來(lái)將需要的屬性名和屬性值存儲(chǔ)到對(duì)象中。
然而PHP中沒(méi)有Javascript里面 var object = {}; 這樣的語(yǔ)法。
PHP創(chuàng)建空對(duì)象至少可以使用3種方法實(shí)現(xiàn)
方法一:寫(xiě)一個(gè)空類(lèi)
勉強(qiáng)能完成任務(wù),但是特別沒(méi)有格局。
<?php
class cfg {
}
$cfg = new cfg;
$cfg->dbhost = 'www.dhdzp.com';
echo $cfg->dbhost;
?>
方法二:實(shí)例化 StdClass 類(lèi)
StdClass類(lèi)是PHP中的一個(gè)基類(lèi),然而比較詭異的是PHP手冊(cè)里面血幾乎沒(méi)有提到過(guò)這個(gè)類(lèi),至少在PHP索引中是搜索不到這個(gè)類(lèi)的。
StdClass類(lèi)沒(méi)有任何成員方法,也沒(méi)有任何成員屬性,實(shí)例化以后就是一個(gè)空對(duì)象。
<?php $cfg = new StdClass(); $cfg->dbhost = 'www.dhdzp.com'; echo $cfg->dbhost; ?>
方法三:折騰json_encode()和json_decode()
這種方法就是把一個(gè)空的JSON對(duì)象通過(guò)json_decode()轉(zhuǎn)變?yōu)镻HP的StdClass空對(duì)象。
同樣的道理,你可以將一個(gè)數(shù)組通過(guò)json_encode()轉(zhuǎn)成JSON,再通過(guò)json_decode()將JSON轉(zhuǎn)為StdClass對(duì)象,
關(guān)于這兩個(gè)函數(shù),可以參考PHP手冊(cè)。
<?php
$cfg = json_decode('{}');
$cfg->dbhost = 'www.dhdzp.com';
echo $cfg->dbhost;
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php使用變量動(dòng)態(tài)創(chuàng)建類(lèi)的對(duì)象用法示例
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類(lèi)文件,命名空間
- 一個(gè)ASP創(chuàng)建動(dòng)態(tài)對(duì)象的工廠類(lèi)(類(lèi)似PHP的stdClass)
- php單例模式實(shí)現(xiàn)(對(duì)象只被創(chuàng)建一次)
- PHP面向?qū)ο蟮倪M(jìn)階學(xué)習(xí)(抽像類(lèi)、接口、final、類(lèi)常量)
- php學(xué)習(xí)筆記 類(lèi)的聲明與對(duì)象實(shí)例化
- php面向?qū)ο笕ヂ?(二) 實(shí)例化對(duì)象 使用對(duì)象成員
- PHP對(duì)象實(shí)例化單例方法
- PHP面向?qū)ο笕筇攸c(diǎn)學(xué)習(xí)(充分理解抽象、封裝、繼承、多態(tài))
- php初始化對(duì)象和析構(gòu)函數(shù)的簡(jiǎn)單實(shí)例
- PHP創(chuàng)建對(duì)象的六種方式實(shí)例總結(jié)
相關(guān)文章
詳解php 使用Callable Closure強(qiáng)制指定回調(diào)類(lèi)型
這篇文章主要介紹了詳解php 使用Callable Closure強(qiáng)制指定回調(diào)類(lèi)型的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下2017-10-10
php-perl哈希算法實(shí)現(xiàn)(times33哈希算法)
php-perl哈希實(shí)現(xiàn)算法–DJBX33A(Daniel J. Bernstein, Times 33 with Addition)APR哈希默認(rèn)算法2013-12-12
PHP小技巧之JS和CSS優(yōu)化工具M(jìn)inify的使用方法
為減少HTTP請(qǐng)求,我們往往需要合并和壓縮多個(gè)JS和CSS文件,下面記錄下網(wǎng)上關(guān)于實(shí)現(xiàn)這個(gè)功能的PHP源碼以及開(kāi)源項(xiàng)目Minify的使用方法2014-05-05
PHP實(shí)現(xiàn)的生成唯一RequestID類(lèi)完整示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的生成唯一RequestID類(lèi),結(jié)合完整實(shí)例形式分析了php唯一標(biāo)識(shí)符生成、session操作等相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2018-07-07
讓Nginx支持ThinkPHP的URL重寫(xiě)和PATHINFO的方法分享
ThinkPHP支持通過(guò)PATHINFO和URL rewrite的方式來(lái)提供友好的URL,只需要在配置文件中設(shè)置 'URL_MODEL' => 2 即可。在Apache下只需要開(kāi)啟mod_rewrite模塊就可以正常訪問(wèn)了,但是Nginx中默認(rèn)是不支持PATHINFO的,所以我們需要修改nginx.conf文件。2011-08-08
PHP+sqlite數(shù)據(jù)庫(kù)操作示例(創(chuàng)建/打開(kāi)/插入/檢索)
這篇文章主要介紹了PHP+sqlite數(shù)據(jù)庫(kù)操作的方法,簡(jiǎn)單分析了sqlite數(shù)據(jù)庫(kù)的功能及相關(guān)操作技巧,包括創(chuàng)建,打開(kāi),插入,檢索及錯(cuò)誤提示等,需要的朋友可以參考下2016-05-05

