PHP で JSON に空のオブジェクトを作成する最適な方法は? 質問する

PHP で JSON に空のオブジェクトを作成する最適な方法は? 質問する

空の JSON オブジェクトを作成するには、通常、次を使用します。

json_encode((object) null);

オブジェクトに null をキャストすることはできますが、他に望ましい方法やこの解決策に問題はありますか?

ベストアンサー1

推奨方法

json_decode ("{}")デフォルトではが返されるためstdClass、以下を使用することで安全/移植性があり、正しいものと見なされます。

json_encode (new stdClass);


あなたの解決策はうまくいくかもしれません。

ドキュメントでは、(object) null空のオブジェクトが生成されるということが明記されているため、コードは有効であり、このメソッドを使用する必要があると言う人もいるかもしれません。

PHP: オブジェクト - マニュアル

他の型の値がオブジェクトに変換されると、stdClass 組み込みクラスの新しいインスタンスが作成されます。値が NULL の場合、新しいインスタンスは空になります。

..ただし、安全を保つようにしてください。

ただし、上記がいつ変更されるかはわかりません。したがって、エンコードされたデータに常に が含まれることを 100% 確実にしたい場合は、{}次のようなハックを使用できます。

$empty = json_decode ("{}");
$result = json_encode($empty); // "{}"

面倒で見苦しいですが、json_encode/json_decode は互いに互換性があり、常に次の結果が true と評価されることを前提/期待しています。

$a = <something>;

$a === json_decode (json_encode ($a)); 

おすすめ記事