PHP では、オブジェクトと配列は 2 つの一般的なデータ型です。データベースやログに簡単に使用したり、保存したりするために、オブジェクトを配列に変換することが必要になる場合があります。オブジェクトを配列に変換するいくつかの方法を次に示します。
#get_object_vars() 関数の使用-
get_object_vars() 関数は、オブジェクトのプロパティのリストを返します。関連 配列の形式で返されます。次のコードを使用して、オブジェクトを配列に変換できます。
$obj = new MyClass();
$arr = get_object_vars($obj);
ログイン後にコピー
キャストの使用 -
PHP では、オブジェクトを配列型にキャストできます。これにより、オブジェクトのすべてのプロパティが配列要素に変換されます。次の構文を使用します。
$arr = (array) $obj;
ログイン後にコピー
json_decode 関数と json_encode 関数を使用する-
json_decode() 関数は、JSON 形式の文字列を PHP 配列に変換できます。 PHP では、 json_encode() 関数を使用して、配列を JSON 形式の文字列に変換できます。したがって、オブジェクトを JSON 形式の文字列に変換してから配列に変換すると、次のコードを使用できます。
$json = json_encode($obj);
$arr = json_decode($json, true);
ログイン後にコピー
#シリアル化関数と逆シリアル化関数の使用
- #PHP では、シリアル化関数と逆シリアル化関数を使用してオブジェクトを配列に変換できます。シリアル化関数 Serialize() は、PHP オブジェクトを保存可能な文字列にシリアル化でき、unserialize() 関数は、シリアル化された文字列を PHP オブジェクトに逆シリアル化できます。次のコードを使用して、オブジェクトを配列に変換できます。
$str = serialize($obj);
$arr = unserialize($str);
ログイン後にコピー
要約すると、上記のメソッドはオブジェクトを配列に変換できます。実際のプロジェクトでは、プロジェクトのニーズに応じて最適な手法を選択する必要があります。このうち get_object_vars() 関数はオブジェクト属性の取得に適しており、強制型変換関数やシリアル化、逆シリアル化関数は多次元オブジェクト データの処理に適しています。 Json_decode メソッドと json_encode メソッドを使用すると、オブジェクトを配列に簡単に変換できます。同様のことが多次元データにも当てはまります。
一部のオブジェクト プロパティはプライベートまたは保護されている場合があり、上記のメソッドでは取得できないことに注意してください。パブリック取得メソッドをクラスに追加する必要があります。さらに、オブジェクトに他のオブジェクトがプロパティとして含まれている場合は、完全な配列データを取得するために再帰的に変換する必要があります。
以上がPHPでオブジェクトを配列に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。