STDCLASS方法怎么在PHP中使用-創(chuàng)新互聯(lián)

STDCLASS方法怎么在PHP中使用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)公司一直通過網站建設和網站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以成都網站建設、成都網站制作、移動互聯(lián)產品、營銷型網站建設服務為核心業(yè)務。10年網站制作的經驗,使用新網站建設技術,全新開發(fā)出的標準網站,不但價格便宜而且實用、靈活,特別適合中小公司網站制作。網站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網站資料,是中小公司快速網站建設的選擇。

PHP中STDCLASS在我們開發(fā)應用中使用到的不多,但是PHP中STDCLASS作用是非常的大的,下面我們一起來看PHP中STDCLASS的用法.


在WordPress中很多地方使用stdClass來定義一個對象(而通常是用數組的方式),然后使用get_object_vars來把定義的對象『轉換』成數組.

如下代碼所示:

$tanteng = new stdClass();
$tanteng->name = 'tanteng';
$tanteng->email = 'xxx@qq.com';
$info = get_object_vars($tanteng);
print_r($info);
exit;

輸出:

Array ( [name] => tanteng [email] => xxx@qq.com )

get_object_vars的作用是返回由對象屬性組成的關聯(lián)數組。它的效果跟這樣定義數組其實是一樣的:

$tanteng = array();
$tanteng['name'] = 'tanteng';
$tanteng['email'] = 'xxx@qq.com';

可以這樣理解:stdClass是一個內置類,它沒有成員變量,也沒有成員方法的一個類,new一個stdClass就是實例化了一個『空』對象,它本身沒什么意義,但是用stdClass定義有什么好處呢?

如下代碼:

$user = new stdClass();
$user->name = 'gouki';
$user->hehe = 'hehe';
$myUser = $user;
$myUser->name = 'flypig';
print_r($user);
print_r($myUser);
print_r($user);

這里$myUser被賦值$user,但其實并沒有新開辟一塊內存存儲變量,$myUser還是指的stdClass這個對象,通過$myUser改變屬性頁就改變了$user的屬性,并不是新建一個副本,如果程序中有許多這樣的操作,使用stdClass的方式可以節(jié)省內存開銷.

運行結果:

stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)
stdClass Object
(
  [name] => flypig
  [hehe] => hehe
)

從結果可以看出,改變$myUser的屬性確實改變了$user聲明的stdClass屬性,而如果$user是一個數組,賦值給$myUser,那就拷貝了一個副本給$myUser,這樣增大系統(tǒng)開銷.

當然,你也可以反過來,把一個數組轉換為對象:

$hehe['he1'] = 'he1';
$hehe['he2'] = 'he2';
$hh = (object) $hehe;
print_r($hh);

打印結果:

stdClass Object ( [he1] => he1 [he2] => he2 )

關于STDCLASS方法怎么在PHP中使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

本文名稱:STDCLASS方法怎么在PHP中使用-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article16/dpccgg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網站建設、微信小程序、用戶體驗、外貿建站、建站公司

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網頁設計公司