ホームページ  >  記事  >  バックエンド開発  >  PHPオブジェクトを配列に変換

PHPオブジェクトを配列に変換

WBOY
WBOYオリジナル
2024-08-29 12:43:59990ブラウズ

次の記事では、PHP オブジェクトを配列する方法の概要を説明します。ご存知のとおり、オブジェクトはメモリが割り当てられたクラス インスタンスとして知られています。配列の場合、それは 1 つの名前に類似した型の 1 つ以上の値を含むデータ構造です。一方、連想配列は通常の PHP 配列とは異なります。連想配列とは、項目値を線形インデックス順以外のキー値に紐付けて格納する文字列インデックスからなる配列です。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

配列への PHP オブジェクトのメソッド

ここで、PHP オブジェクトを配列に変換するさまざまな方法を見てみましょう。

メソッド 1

json_decode メソッドと json_encode メソッドを利用する

このメソッドでは、関数 json_decode は JSON エンコードされた文字列を取得して PHP 変数に変更しますが、json_encode 関数は特定の値に対して JSON 形式でエンコードされた文字列を返します。

構文:

$arr = json_decode(json_encode ( $obj ) , true);

方法 2

型キャストの助けを借りて

型キャストは、あるデータ型変数を別のデータ型に変換する手法です。これは明示的なデータ型変換とみなされます。 PHP の型キャスト ルールを利用して、PHP オブジェクトを配列に変換できます。

構文:

$arr = (array) $obj;

PHP でオブジェクトを配列に変換する方法?

ご存知のとおり、データには文字列、オブジェクト、配列などの形式がいくつかあります。PHP の場合にも、次のようなデータ形式があります。必要な出力を取得するには、連想配列の形式で php オブジェクト obj の結果が必要です。

それでは、php オブジェクトを翻訳する方法を見てみましょう。

コード:

<?php
class hospital
{
// elements
. . . .
function __construct( $dis1, $dis2, $dis3)
{
// Use this pointer
. . . .
}
// create class object
. . .
// convert object to array
. . . .
?>

これはオブジェクトを配列に変換するためのスケルトンです。

それでは、これを実行する方法を見てみましょう。

  • 文字列をエンコードするには、「object = json_encode($array);」を使用します

オブジェクトが var_dump の場合、すべての項目が表示されます。

  • オブジェクトにデコードする場合、利用可能な json 文字列が変換に使用され、オブジェクトに対して文字列の書式設定が行われます。これは $obj = json_decode(json_encode($arr));
  • を使用して行われます。
  • オブジェクトがvar_dumpの場合、全項目を配列に変換して表示します。

ここで、考慮すべき重要な点の 1 つは、true または false のブール値である別のオプションを提供する場合を除いて、json 文字列をオブジェクトに変換する json_decode です。第二引数が true とみなされても配列が取得されます。

また、json のエンコード操作とデコード操作を使用すると、配列が大きい場合、配列は多くのリソースを消費するオブジェクトに変換されます。その場合は、オブジェクト キャストを使用するオブジェクトに配列を型キャストする方が良い方法です。

$obj = (オブジェクト) $arr; を考えてみましょう。構文。ここでもオブジェクトは配列に変換されます。

要件に基づいて、PHP で配列をオブジェクトに変換する方法を選択できます。

配列への PHP オブジェクトの例

さまざまな例を以下に示します:

例 #1

型キャストメソッドを使用してオブジェクトを配列に変換する PHP プログラム。

コード:

<?php
class hospital
{
var $el1;
var $el2;
var $el3;
function __construct( $dis1, $dis2, $dis3)
{
$this->item1 = $dis1;
$this->item2 = $dis2;
$this->item3 = $dis3;
}
}
// Creation of object for the class
$dis = new hospital("D", "S", "C") ;
echo "Items before conversion : " ;
var_dump($dis);
// convert object to array
$arr = (array)$dis;
echo "Items after conversion : ";
var_dump($arr);
?>

出力:

PHPオブジェクトを配列に変換

このプログラムでは、クラス病院を作成し、その中に el1、el2、el3 の 3 つの要素を作成します。次に、 __construct() 関数が宣言され、オブジェクトの作成時に実行されます。これが完了すると、コンストラクターは、後でオブジェクトの作成中にキーワード「new」を使用して提供されるパラメーターを受け取ります。プログラムから、式 var_dump() の最初のケースでオブジェクトが出力されることがわかります。ただし、式の 2 番目のケースでは、オブジェクトは型キャスト プロシージャを使用して配列にキャストされます。

例 #2

json エンコードと json デコードを使用してオブジェクトを配列に変換する PHP プログラム。

コード:

<?php
class hospital
{
var $el1;
var $el2;
function __construct( $dis1, $dis2 )
{
$this->item1 = $dis1;
$this->item2 = $dis2;
}
}
// Creating object
$dis = new hospital(500, "C");
echo "Items before conversion : " ;
var_dump($dis);
// convert object to array
$arr = json_decode(json_encode($dis), true);
echo "Items after conversion : ";
var_dump($arr);
?>

出力:

PHPオブジェクトを配列に変換

このプログラムでもクラス病院が作成され、その中にel1とel2という2つの要素が作成されます。次に、 __construct() 関数が宣言され、オブジェクトの作成時に実行されます。これが完了すると、コンストラクターは、後でオブジェクトの作成中にキーワード「new」を使用して提供されるパラメーターを受け取ります。プログラムから、式 var_dump() の最初のケースでオブジェクトが出力されることがわかります。ただし、式の 2 番目のケースでは、型キャスト プロシージャを使用してオブジェクトが配列にキャストされます。ここで、メソッド セクションの最初のメソッドは、オブジェクトを配列に変換するために使用されます。

結論

連想配列は、線形インデックスの順序以外のキー値に関連付けられた項目値を格納する文字列インデックスで構成される配列です。この記事では、PHP オブジェクトから配列への変換がどのように機能するか、それを実現する方法、およびさまざまな例について説明しました。

以上がPHPオブジェクトを配列に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。