本文實例分析了php中stdClass的用法。分享給大家供大家參考。
具體分析如下:
stdclass在php中是預先定義的幾個類別之一,是zent保留的一個類別。實際上它是PHP提供的一個基類,就是一個空白的類,裡面什麼都沒有,我們可以實例化它,然後定義一系列的變量,透過它來進行變量的傳遞(很多php程式設計師用它來傳遞一系列變數的值,而同時又懶得去創建一個自己的類別)。但是,由於實例化後不能加入方法,因此只能傳遞屬性。因為,一旦類別被實列化以後,就不能在添加方法了。
stdclass可以作為基類使用,其最大特點是,(其派生類別)可以自動添加成員變量,而無須在定義時說明。
一切php變數都是stdClass的實例。
使用方法:
1、使用stdclass:
$andy = array(); $andy = (object)$andy; $andy->a = 1; $andy->b = 2; $andy->c = 3;
這樣數量a、b、c就填進了stdclass裡面。這樣要省事,因為新建空對像要$andy = new Andy; 而且還得先有class Andy{}。又如:
<?php $a = new stdClass(); $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
將會輸出:stdClass Object ( [id] => 11 [username] => me ) 。
很多時候用這種方法取代陣列的使用,只不過是換一種語法形式。
讀取:
stdClass Object ( [getWeatherbyCityNameResult] => stdClass Object ( [string] => Array ( [0] => 四川 [1] => 成都 [2] => 56294 [3] => 56294.jpg [4] => 2009-5-17 13:52:08 [5] => 26℃/19℃ [6] => 5月17日 阴转阵雨 ) ) )
其實和array差不多,只是訪問方式改變一點就行,我們一般習慣使用array['key']這種方式來訪問數組。
對於這種stdClass來說,如上例,$weather->getWeatherbyCityNameResult->string[0]可以這樣來存取屬性,這個將得到結果「四川」。
3、實例化,new。
比較這兩個程式碼:
<?php $a = array(1=>2,2=>3); $a = (object)$a; $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
將輸出:stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username] => meusername] => me ) 。
<?php $a = array(1=>2,2=>3); $a = (object)$a; $a = new stdClass(); $a->id = '11 '; $a->username = 'me'; print_r($a); ?>
將輸出:stdClass Object ( [id] => 11 [username] => me ) 。
原來用new實例化後,前面的陣列清空,只留下後面加進來的,如果不實例化,stdClass將保留所有元素。
要注意的是,在函數裡面使用global、static時遇new stdclass引用的情況,這時&new stdclass將會失效,應避免使用引用,直接用new stdclass。
希望本文所述對大家的php程式設計有幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)