PHP使用new StdClass()創(chuàng)建空對(duì)象的方法分析
本文實(shí)例講述了PHP使用new StdClass()創(chuàng)建空對(duì)象的方法。分享給大家供大家參考,具體如下:
PHP可以用 $object = new StdClass();
創(chuàng)建一個(gè)沒有成員方法和屬性的空對(duì)象。
很多時(shí)候,程序員們會(huì)將一些參數(shù)配置項(xiàng)之類的信息放在數(shù)組中使用,但是數(shù)組操作起來并不是很方便,很多時(shí)候使用對(duì)象操作符->xxx比數(shù)組操作符['xxx']要方便不少。于是就需要?jiǎng)?chuàng)建一個(gè)空的對(duì)象,來將需要的屬性名和屬性值存儲(chǔ)到對(duì)象中。
然而PHP中沒有Javascript里面 var object = {};
這樣的語法。
PHP創(chuàng)建空對(duì)象至少可以使用3種方法實(shí)現(xiàn)
方法一:寫一個(gè)空類
勉強(qiáng)能完成任務(wù),但是特別沒有格局。
<?php class cfg { } $cfg = new cfg; $cfg->dbhost = 'www.dbjr.com.cn'; echo $cfg->dbhost; ?>
方法二:實(shí)例化 StdClass 類
StdClass類是PHP中的一個(gè)基類,然而比較詭異的是PHP手冊(cè)里面血幾乎沒有提到過這個(gè)類,至少在PHP索引中是搜索不到這個(gè)類的。
StdClass類沒有任何成員方法,也沒有任何成員屬性,實(shí)例化以后就是一個(gè)空對(duì)象。
<?php $cfg = new StdClass(); $cfg->dbhost = 'www.dbjr.com.cn'; echo $cfg->dbhost; ?>
方法三:折騰json_encode()和json_decode()
這種方法就是把一個(gè)空的JSON對(duì)象通過json_decode()
轉(zhuǎn)變?yōu)镻HP的StdClass空對(duì)象。
同樣的道理,你可以將一個(gè)數(shù)組通過json_encode()
轉(zhuǎn)成JSON,再通過json_decode()
將JSON轉(zhuǎn)為StdClass對(duì)象,
關(guān)于這兩個(gè)函數(shù),可以參考PHP手冊(cè)。
<?php $cfg = json_decode('{}'); $cfg->dbhost = 'www.dbjr.com.cn'; echo $cfg->dbhost; ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php使用變量動(dòng)態(tài)創(chuàng)建類的對(duì)象用法示例
- PHP動(dòng)態(tài)地創(chuàng)建屬性和方法, 對(duì)象的復(fù)制, 對(duì)象的比較,加載指定的文件,自動(dòng)加載類文件,命名空間
- 一個(gè)ASP創(chuàng)建動(dòng)態(tài)對(duì)象的工廠類(類似PHP的stdClass)
- php單例模式實(shí)現(xiàn)(對(duì)象只被創(chuàng)建一次)
- PHP面向?qū)ο蟮倪M(jìn)階學(xué)習(xí)(抽像類、接口、final、類常量)
- php學(xué)習(xí)筆記 類的聲明與對(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實(shí)現(xiàn)的多進(jìn)程控制demo示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的多進(jìn)程控制demo,涉及php信號(hào)處理與進(jìn)程控制相關(guān)操作技巧,需要的朋友可以參考下2019-07-07PHP 獲取MySQL數(shù)據(jù)庫里所有表的實(shí)現(xiàn)代碼
獲取某個(gè)MySQL數(shù)據(jù)庫中所有表的PHP代碼如下,需要的朋友可以參考下。2011-07-07php版本CKEditor 4和CKFinder安裝及配置方法圖文教程
這篇文章主要介紹了php版本CKEditor 4和CKFinder安裝及配置方法,結(jié)合圖文與實(shí)例形式詳細(xì)分析了php安裝及配置CKEditor 4和CKFinder相關(guān)實(shí)現(xiàn)步驟、操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-06-06Json_decode 解析json字符串為NULL的解決方法(必看)
下面小編就為大家?guī)硪黄狫son_decode 解析json字符串為NULL的解決方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02php 對(duì)輸入信息的進(jìn)行安全過濾的函數(shù)代碼
php 對(duì)輸入信息的過濾代碼,主要是針對(duì)php安全問題2012-06-06真正根據(jù)utf8編碼的規(guī)律來進(jìn)行截取字符串的函數(shù)(utf8版sub_str )
真正根據(jù)utf8編碼的規(guī)律來進(jìn)行截取的字符的函數(shù),utf8版sub_str 支持1~6個(gè)字節(jié)的字符的截取,而非只針對(duì)中文,比網(wǎng)上的全2012-10-10php封裝pdo實(shí)例以及pdo長(zhǎng)連接的優(yōu)缺點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于php封裝pdo實(shí)例以及pdo長(zhǎng)連接的優(yōu)缺點(diǎn)總結(jié)內(nèi)容,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。2021-12-12Windows下的PHP安裝文件線程安全和非線程安全的區(qū)別
Windows版的PHP從版本5.2.1開始有Thread Safe。這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個(gè)簡(jiǎn)單的介紹2014-04-04php實(shí)現(xiàn)的DateDiff和DateAdd時(shí)間函數(shù)代碼分享
這篇文章主要介紹了php實(shí)現(xiàn)的DateDiff和DateAdd時(shí)間函數(shù)代碼分享,DateDiff用來計(jì)算兩個(gè)時(shí)間的間隔,DateAdd用來對(duì)兩個(gè)時(shí)間進(jìn)行相加,需要的朋友可以參考下2014-08-08