成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP 中的 stdClass 是什么?有什么作用?

開發
通俗的說,stdclass 就是PHP中的空類,用于將其他類型轉換為對象。下面我針對不同使用場景來分析一下stdclass。

對于 stdclass 官方文檔介紹它是具有動態屬性的通用空類。此類的對象可以使用 new 實例化,也可以通過類型轉換為對象創建。幾個 PHP 函數也會創建此類的實例,比如 json_decode()、mysqli_fetch_object() 或 PDOStatement::fetchObject()。

通俗的說,他就是PHP中的空類,用于將其他類型轉換為對象。比如數組,字符串等轉換成一個自定義的對象,常見的有json_decode(),將字符串json格式的數據轉換成一個對象形式。

下面我針對不同使用場景來分析一下stdclass。

1. 數據存儲

PHP開發過程中存儲數據用的最多的時數組,但是我們還可以使用對象來存儲。如果不想自己自定義一個類,來存儲數據,就可以使用 stdclass 

(1) 數組存儲

// 定義數組存儲個人信息
$personal_array = [
"name" => "Tinywan",
"home" => "www.tinywan.com",
"address" => "ZheJiang HangZhou"
];

// 顯示數組內容
print_r($personal_array);

輸出結果如下:

Array
(
    [name] => Tinywan
    [home] => www.tinywan.com     
    [address] => ZheJiang HangZhou
)

(2) 對象存儲

$personal_object = newstdClass();
$personal_object->name = "Tinywan";
$personal_object->home = "www.tinywan.com";
$personal_object->address = "ZheJiang HangZhou";

// 顯示對象內容
print_r($personal_object);

注意:這里定義的對象,可以動態增加屬性

輸出結果如下:

stdClass Object
(
    [name] => Tinywan
    [home] => www.tinywan.com     
    [address] => ZheJiang HangZhou
)

當然,數組和stdclass之間是可以互相轉換。數組轉stdclass對象非常方便,直接使用(object)進行強轉即可:

$personal_array = [
"name" => "Tinywan",
"home" => "www.tinywan.com",
"address" => "ZheJiang HangZhou"
];
$personal_object = (object) $personal_array;

// 顯示對象內容
print_r($personal_object);

輸出內容:

stdClass Object
(
    [name] => Tinywan
    [home] => www.tinywan.com     
    [address] => ZheJiang HangZhou
)

對象轉數組也是一樣的:

$personal_object = newstdClass();
$personal_object->name = "Tinywan";
$personal_object->home = "www.tinywan.com";
$personal_object->address = "ZheJiang HangZhou";

$personal_array = (array) $personal_object;
// 顯示數組內容
print_r($personal_array);

輸出內容:

Array
(
    [name] => Tinywan
    [home] => www.tinywan.com
    [address] => ZheJiang HangZhou
)

2. stdclass不是PHP對象的基類

這里需要注意的是,盡管是泛型類,stdClass 并不是 PHP 中對象的基類,我們可以使用 instanceof 關鍵字來證明這一點。

classTinywan{

}

$objClass = newTinywan();
if ($objClass instanceof\stdClass){
echo'Yes';
} else {
echo'No';
}

輸出結果:No

結果證明,stdclass并不是PHP的基類。

3. json_encode() 、 json_decode()與stdclass的關系

json_encode() 和 json_decode() 是專門用于對 JSON 字符串執行操作的函數。json_encode() 用于將 Array 轉換為 JSON 字符串 。因此,首先,我們將一個對象轉換為 JSON 字符串,然后使用 json_decode() 將其轉換為對象。

$empInfo = array(
'name'=>'John',
'address'=>'Houston',
'employment' => array(
'id' => '1',
'address' => 'Los Angeles'
    )
);
print_r(json_decode(json_encode($empInfo)));

輸出結果如下:

stdClass Object
(
   [name] => John
   [address] => Houston
   [employment] => stdClass Object
      (
         [id] => 1
         [address] => Los Angeles
      )
)
責任編輯:趙寧寧 來源: 編程經驗共享
相關推薦

2023-03-28 07:03:15

gRPCMetadata

2021-01-21 17:27:05

區塊鏈加密貨幣穩定幣

2022-05-16 23:10:54

穩定幣區塊鏈加密貨幣

2025-02-20 10:04:35

2009-12-07 17:20:29

PHP stdClas

2025-02-27 09:30:00

MySQLLog Buffer數據庫

2009-07-07 16:38:36

ServletCont

2011-08-19 08:58:34

Linux

2024-12-25 16:04:53

2021-08-23 06:22:00

PaaSDevOps平臺即服務

2012-05-03 08:34:15

LinuxKconfig

2021-07-06 07:27:45

React元素屬性

2019-12-02 08:18:51

CISO首席信息安全官網絡安全

2021-04-19 21:58:32

智能照明商業建筑

2022-04-08 13:58:19

物聯網車隊管理企業

2020-03-11 08:15:08

物聯網智慧城市互聯網

2022-09-27 09:52:14

物聯網邊緣計算

2010-04-23 16:56:26

OracleSQL調優

2022-02-18 11:06:12

首席技術官技術人工智能

2011-06-27 08:35:28

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线观看中文字幕 | 嫩草研究影院 | 黄频免费 | 欧美日韩一区二区电影 | 欧美精品欧美精品系列 | 香蕉视频91 | 国产91视频一区二区 | caoporn免费| 特黄毛片 | 波波电影院一区二区三区 | 激情网站在线观看 | 97人人超碰 | 午夜激情免费视频 | 一区二区av在线 | 日韩二三区 | 99精品九九 | 国产精品三级久久久久久电影 | 免费一级淫片aaa片毛片a级 | 欧美日韩国产三级 | 亚洲欧美另类在线 | 亚洲精品成人 | 伊人免费在线观看 | 亚洲视频区 | 欧美性猛交一区二区三区精品 | 天天综合网永久 | 亚洲欧洲精品一区 | 国产精品国产精品 | 久久福利网站 | 桃花av在线 | 精品二区 | 久久精品国产免费 | 99re视频在线 | 本道综合精品 | 欧美久久一级特黄毛片 | 欧美一区二区三区久久精品视 | 国产一区二区美女 | 老司机成人在线 | 亚洲免费人成在线视频观看 | 国产精品久久久久一区二区三区 | 国产欧美日韩在线播放 | 日本久久久久久 |