本文實(shí)例講述了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)置標(biāo)準(zhǔn)類,普通數(shù)據(jù)類型轉(zhuǎn)為對(duì)象類型。分享給大家供大家參考,具體如下:
內(nèi)置標(biāo)準(zhǔn)類
PHP中,有很多“現(xiàn)成的類”,其中有一個(gè)被稱為“內(nèi)置標(biāo)準(zhǔn)類”。這個(gè)類“內(nèi)部”可以認(rèn)為什么也沒有。
class stdclass{ }<?php$obj1 = new stdclass();var_dump($obj1);class A{}$obj2 = new A();var_dump($obj2);?>運(yùn)行結(jié)果:
object(stdClass)[1]
object(A)[2]
可以看到和普通類沒什么區(qū)別。
內(nèi)置標(biāo)準(zhǔn)類的作用是,用于存儲(chǔ)一些臨時(shí)的簡(jiǎn)單數(shù)據(jù),如:
$obj1->pp1 = 1;$obj2->port = '3306';
也可以在類型轉(zhuǎn)換時(shí)用于存儲(chǔ)數(shù)據(jù)。
對(duì)象的類型轉(zhuǎn)換
其他數(shù)據(jù)類型轉(zhuǎn)換為對(duì)象類型,得到的結(jié)果是:內(nèi)置標(biāo)準(zhǔn)類(stdclass)的一個(gè)對(duì)象。
語法形式為:
$obj = (object)其他類型數(shù)據(jù);
數(shù)組轉(zhuǎn)換為對(duì)象:數(shù)組的鍵名當(dāng)作屬性名,值為對(duì)象對(duì)應(yīng)的值。
注意:數(shù)字下標(biāo)的數(shù)據(jù)元素,轉(zhuǎn)換為對(duì)象后的屬性,無法通過對(duì)象語法獲取,因此不推薦轉(zhuǎn)換。
<?php$config = array( 'host' => "localhost", 'port' => 3306, 'user' => "root", 'pass' => "123", 'charset' => "utf8", 'dbname' => "yeoman",);$obj1 = (object)$config;var_dump($obj1);echo "<br />單獨(dú)取出user:" . $obj1->user;?>
運(yùn)行結(jié)果:
object(stdClass)[1]
public 'host' => string 'localhost' (length=9)
public 'port' => int 3306
public 'user' => string 'root' (length=4)
public 'pass' => string '123' (length=3)
public 'charset' => string 'utf8' (length=4)
public 'dbname' => string 'yeoman' (length=6)
單獨(dú)取出user:root
但是數(shù)組中有下標(biāo)元素,轉(zhuǎn)為對(duì)象的話,無法通過對(duì)象語法獲取。
<?php$arr = array('pp1' => 1, 5 => 12);$obj2 = (object)$arr;var_dump($obj2);echo "<br />單獨(dú)取出pp1:" . $obj2->pp1;//echo "<br />單獨(dú)取出5:" . $obj2->5;//會(huì)報(bào)錯(cuò)!?>運(yùn)行結(jié)果:
$arr = array('pp1' => 1, 5 => 12);$obj2 = (object)$arr;var_dump($obj2);echo "<br />單獨(dú)取出pp1:" . $obj2->pp1;//echo "<br />單獨(dú)取出5:" . $obj2->5;//會(huì)報(bào)錯(cuò)!?>null轉(zhuǎn)換為對(duì)象:空對(duì)象
$obj = (object)null;
其他標(biāo)量數(shù)據(jù)轉(zhuǎn)換為對(duì)象:屬性名為固定的”scalar“,值為該變量的值
<?php$v1 = 1;$v2 = 2.2;$v3 = "abc";$v4 = true;$objv1 = (object)$v1; //整型轉(zhuǎn)為對(duì)象類型$objv2 = (object)$v2; //浮點(diǎn)型轉(zhuǎn)為對(duì)象類型$objv3 = (object)$v3; //字符串型為對(duì)象類型$objv4 = (object)$v4; //布爾轉(zhuǎn)為對(duì)象類型var_dump($objv1); echo "<br />";var_dump($objv2); echo "<br />";var_dump($objv3); echo "<br />";var_dump($objv4); echo "<br />";
運(yùn)行結(jié)果為:
object(stdClass)[1]
public 'scalar' => int 1object(stdClass)[2]
public 'scalar' => float 2.2object(stdClass)[3]
public 'scalar' => string 'abc' (length=3)object(stdClass)[4]
public 'scalar' => boolean true
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選