本文目錄一覽:
PHP的stdClass類詳解及幾種數組對象轉換方法
一、stdClass數組轉對象
$arr= array();
$arr[‘a’] = 1;
$arr[‘b’] = 2;
$arr[‘c’] = 3;
$object= newstdClass;
foreach($arras$key= $value) {
$object-$key= $value;
}
var_dump($object);
結果輸出如下:
object(stdClass)#1 (3) {
[“a”]=
int(1)
[“b”]=
int(2)
[“c”]=
int(3)
}
二、對象轉數組
functionobject_to_array($obj)
{
$_arr= is_object($obj) ? get_object_vars($obj) : $obj;
foreach($_arras$key= $val)
{
$val= (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
$arr[$key] = $val;
}
return$arr;
}
三、ArrayObject方法數組轉對象
$arr= array(‘key1’=’test1’, ‘key2’= ‘test2’);
var_dump(newArrayObject($arr));
結果輸出如下:
object(ArrayObject)#1 (1) {
[“storage”:”ArrayObject”:private]=
array(2) {
[“key1”]=
string(5) “test1”
[“key2”]=
string(5) “test2”
}
}
用PHP的全局變量的一個BUG~~
你想把stdClass
放在全局變量里,在程序的任何地方都能使用它?
你可以把類放在static變量內。直接調用。
class
Base
{
public
static
$std;
public
function
__construct()
{
require_once
‘stdClass.php’;
self::$std=
new
stdClass();
}
}
Base::$std;就是stdClass類的實例了。
php中 stdclass object是什麼
stdClass在PHP5才開始被流行。而PHP stdClass也是zend的一個保留類。似乎沒有其他作用。也幾乎沒有任何說明。
或者,我們可以這麼理解:PHP stdClass是PHP的一個基類,所有的類幾乎都繼承這個類,所以任何時候都可以被new,可以讓這個變量成為一個object。同時,這個基類又有一個特殊的地方,就是沒有方法。
凡時用new stdClass()的變量,都不可能會出現$a-test()這種方式的使用。
說簡單的一些,stdClass()就是一個程序員實現提前聲明的類,也就是說我們可以隨時讓一個變量成為一個類對象的實例而不需要先聲明類才能創建類對象的實例。
php 一段代碼取值問題?
這是json格式的數據,需要先解碼才能使用,以下輸出結果是:黑色 白色 藍色
$spec=json_decode($spec); //json格式數據解碼
foreach($spec as $key=$val) {
$val=(array)$val; //stdClass Object轉array
if($val[‘title’]==”顏色”){
foreach($val[‘value’] as $index=$color) {
echo $color.” “; //輸出顏色
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285414.html