在 PHP 中建立一個沒有類的物件
-
在 PHP 中使用
new stdClass()
建立一個沒有類的物件 -
使用
object
資料型別將陣列型別轉換為物件以建立物件而不建立類 -
在 PHP 中使用
json_dencode()
函式建立物件而不建立類
本文將介紹在 PHP 中無需建立類即可建立物件的方法。
在 PHP 中使用 new stdClass()
建立一個沒有類的物件
我們可以從 stdClass()
建立一個物件,而無需在 PHP 中建立基類。我們可以使用 new
運算子來建立 stdClass()
的物件。物件可以通過呼叫它們直接訪問屬性。因此,我們可以使用 stdClass()
建立動態物件和屬性。將陣列型別轉換為物件時,編譯器會建立 stdClass()
的例項。
例如,建立一個變數 $object
並儲存由 new
運算子建立的 stdClass()
的例項。從 $object
物件呼叫變數 property
並分配一個字串。分配字串,I am an object's property
。使用反斜槓\
轉義文字中的撇號。對 $object
變數應用 var_dump()
函式以轉儲有關該變數的資訊。
在下面的示例中,我們建立了一個 stdClass()
物件,並立即為該物件的屬性賦值。當我們轉儲物件時,我們將看到在輸出中建立的 stdClass
類的物件。因此,我們可以建立一個物件而無需在 PHP 中建立基類。
示例程式碼:
#php 7.x
<?php
$object = new stdClass();
$object->property = 'I am an object\'s property';
var_dump($object);
?>
輸出:
object(stdClass)#1 (1) { ["property"]=> string(25) "I am an object's property" }
使用 object
資料型別將陣列型別轉換為物件以建立物件而不建立類
我們可以建立一個物件而無需在 PHP 中建立類,使用 object
資料型別將型別轉換為物件。我們可以將陣列型別轉換為 stdClass
物件。object
關鍵字在陣列將陣列型別轉換為物件之前用括號括起來。我們可以使用 var_dump()
函式作為第一個方法來檢視型別轉換物件的資訊。
例如,建立一個變數 $place
並在其中儲存一個陣列。該陣列包含 city
和 country
鍵以及相應的值 Pokhara
和 Nepal
。將 $place
變數分配給新的 $obj
變數。將 object
資料型別寫在 $place
變數之前的括號內。使用 $obj
作為引數呼叫 var_dump()
函式。
下面的示例將陣列型別轉換為物件。var_dump()
函式在輸出部分顯示 $obj
物件。它表明它是一個 stdClass
物件。檢視 PHP 手冊 瞭解型別轉換的工作原理。
程式碼示例:
#php 7.x
<?php
$place = ['city' => 'Pokhara', 'country' =>'Nepal'];
$obj = (object) $place;
var_dump($obj);
?>
輸出:
object(stdClass)#1 (2) { ["city"]=> string(7) "Pokhara" ["country"]=> string(5) "Nepal" }
在 PHP 中使用 json_dencode()
函式建立物件而不建立類
json_decode()
函式將 JSON 字串轉換為 PHP 物件。該函式採用一個字串引數,該引數將被轉換為一個物件。該函式還採用一個可選的布林引數。這個布林引數的預設值是 false
,它將把 JSON 物件轉換為 PHP 物件。如果值為 true
,它會將 JSON 物件轉換為關聯陣列。
例如,建立一個變數 $jsonobj
並將一個 JSON 物件儲存到其中。該物件包含 Harry
、Tony
和 Juan
作為鍵以及整數值 27
、24
和 32
作為各自的值。鍵值對括在花括號內。JSON 物件用引號括起來作為字串。然後在 $jsonobj
變數上使用 json_decode()
函式。將 var_dump()
函式應用於 json_encode()
函式以顯示有關編碼物件的資訊。
在下面的示例中,json_encode()
函式將 JSON 物件轉換為 stdClass
的 PHP 物件。var_dump()
函式顯示物件的屬性和值。因此,我們建立了一個物件,而沒有在 PHP 中建立一個類。它還顯示值的型別。請檢視 PHP 手冊 以瞭解有關 json_decode()
函式的更多資訊。
示例程式碼:
# php 7.x
<?php
$jsonobj = '{"Harry":27,"Tony":24,"Juan":32}';
var_dump(json_decode($jsonobj));
?>
輸出:
object(stdClass)#1 (3) { ["Harry"]=> int(27) ["Tony"]=> int(24) ["Juan"]=> int(32) }
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn