在 PHP 中建立一個沒有類的物件

Subodh Poudel 2023年1月30日
  1. 在 PHP 中使用 new stdClass() 建立一個沒有類的物件
  2. 使用 object 資料型別將陣列型別轉換為物件以建立物件而不建立類
  3. 在 PHP 中使用 json_dencode() 函式建立物件而不建立類
在 PHP 中建立一個沒有類的物件

本文將介紹在 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 並在其中儲存一個陣列。該陣列包含 citycountry 鍵以及相應的值 PokharaNepal。將 $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 物件儲存到其中。該物件包含 HarryTonyJuan 作為鍵以及整數值 272432 作為各自的值。鍵值對括在花括號內。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 Poudel
Subodh Poudel avatar Subodh Poudel avatar

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

相關文章 - PHP Object