您好,登錄后才能下訂單哦!
小編給大家分享一下PHP面向對象程序設計內置標準類的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體如下:
內置標準類
PHP中,有很多“現成的類”,其中有一個被稱為“內置標準類”。這個類“內部”可以認為什么也沒有。
class stdclass{ }
<?php $obj1 = new stdclass(); var_dump($obj1); class A{} $obj2 = new A(); var_dump($obj2); ?>
運行結果:
object(stdClass)[1]
object(A)[2]
可以看到和普通類沒什么區別。
內置標準類的作用是,用于存儲一些臨時的簡單數據,如:
$obj1->pp1 = 1; $obj2->port = '3306';
也可以在類型轉換時用于存儲數據。
對象的類型轉換
其他數據類型轉換為對象類型,得到的結果是:內置標準類(stdclass)的一個對象。
語法形式為:
$obj = (object)其他類型數據;
數組轉換為對象:數組的鍵名當作屬性名,值為對象對應的值。
注意:數字下標的數據元素,轉換為對象后的屬性,無法通過對象語法獲取,因此不推薦轉換。
<?php $config = array( 'host' => "localhost", 'port' => 3306, 'user' => "root", 'pass' => "123", 'charset' => "utf8", 'dbname' => "yeoman", ); $obj1 = (object)$config; var_dump($obj1); echo "<br />單獨取出user:" . $obj1->user; ?>
運行結果:
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)
單獨取出user:root
但是數組中有下標元素,轉為對象的話,無法通過對象語法獲取。
<?php $arr = array('pp1' => 1, 5 => 12); $obj2 = (object)$arr; var_dump($obj2); echo "<br />單獨取出pp1:" . $obj2->pp1; //echo "<br />單獨取出5:" . $obj2->5;//會報錯! ?>
運行結果:
$arr = array('pp1' => 1, 5 => 12); $obj2 = (object)$arr; var_dump($obj2); echo "<br />單獨取出pp1:" . $obj2->pp1; //echo "<br />單獨取出5:" . $obj2->5;//會報錯! ?>
null轉換為對象:空對象
$obj = (object)null;
其他標量數據轉換為對象:屬性名為固定的”scalar“,值為該變量的值
<?php $v1 = 1; $v2 = 2.2; $v3 = "abc"; $v4 = true; $objv1 = (object)$v1; //整型轉為對象類型 $objv2 = (object)$v2; //浮點型轉為對象類型 $objv3 = (object)$v3; //字符串型為對象類型 $objv4 = (object)$v4; //布爾轉為對象類型 var_dump($objv1); echo "<br />"; var_dump($objv2); echo "<br />"; var_dump($objv3); echo "<br />"; var_dump($objv4); echo "<br />";
運行結果為:
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
以上是“PHP面向對象程序設計內置標準類的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。