PHP面向對象程序設計內置標準類,普通數據類型轉爲對象類型示例

這篇文章主要介紹了PHP面向對象程序設計內置標準類,普通數據類型轉爲對象類型,結合實例形式分析了php面向對象程序設計中的內置標準類,普通數據類型概念、功能及對象類型轉換相關操作技巧,需要的朋友可以參考下

本文實例講述了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 1

object(stdClass)[2]
  public 'scalar' => float 2.2

object(stdClass)[3]
  public 'scalar' => string 'abc' (length=3)

object(stdClass)[4]
  public 'scalar' => boolean true

更多關於PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧彙總

希望本文所述對大家PHP程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章