ホームページ >バックエンド開発 >PHPチュートリアル >オブジェクトをJSON文字列に変換する
この記事では、オブジェクトを JSON 文字列に変換する方法を主に紹介します。これには、特定の参照値があります。今度は、それを全員に共有します。必要な友人は、それを参照できます。
学生クラスを定義します:
1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { 5 $this->name = $name; 6 $this->age = $age; 7 } 8 }
この時点で、新しいオブジェクトを作成し、直接エコーします: 1 $person1 = new Student('jack', 20); 2 echo $person1;
結果は次のように出力されません。オブジェクトを終了する代わりに、致命的なエラーが報告されます:
は、Student クラスによってインスタンス化されたオブジェクトを文字列に変換できないことを意味します。メッセージ: echo この後には文字列が続く必要があります,
そうしないと自動的に文字列に変換されます。では、オブジェクトを文字列に変換するにはどうすればよいでしょうか?
最初に魔法のメソッド __tostring() を紹介します。このメソッドは、文字列として扱われるときにクラスがどのように応答するかに使用されます。たとえば、echo $obj;
表示される内容。このメソッドは文字列を返す必要があります。そうでない場合は、E_RECOVERABLE_ERROR
レベルの致命的なエラーが発行されます。
このマジック メソッドを Student クラスに追加します。
1 class Student { 2 public $name; 3 public $age; 4 function __construct($name, $age) { 5 $this->name = $name; 6 $this->age = $age; 7 } 8 function __tostring() { 9 return json_encode($this, JSON_FORCE_OBJECT); 10 } 11 }
json_encode(value, options) メソッドは、オブジェクトを JSON 文字列に変換できます。このメソッドは 2 つのパラメータを受け入れます。
最初のパラメータ: 値
リソース タイプを除く、エンコードされる値は任意のデータ型にすることができます
この関数は UTF-8 でエンコードされたデータのみを受け入れることができます
2 番目のパラメータ: オプション
次の定数で構成されるバイナリ マスク: JSON_HEX_QUOT、JSON_HEX_TAG、JSON_HEX_AMP、JSON_HEX_APOS、JSON_NUMERIC_CHECK、JSON_PRETTY_PRINT、JSON_UNESCAPED_SLASHES、JSON_FORCE_OBJECT、JSON_UNESCAPED_UNICO DE。
戻り値: を返します。エンコードが成功した場合は JSON 形式で表される文字列、失敗した場合は FALSE を返します。
注: json_encode メソッドと比較して、json_decode メソッドがあります。このメソッドは、JSON 形式の文字列を PHP 変数に変換できます。このメソッドは 2 つのパラメータを受け入れます。 最初のパラメータ: json 文字列
2 番目のパラメータ: true/false true の場合、文字列を配列に転置することを意味し、false の場合、それを意味します変換. はオブジェクトです、デフォルトは false
戻り値: オブジェクトまたは配列 (2 番目のパラメーターが true の場合)
これは次の形式で開くことができます。
# 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。詳細については、この時点のブラウザで確認してください。関連コンテンツについては、PHP 中国語 Web サイトにご注意ください。
関連する推奨事項:php redis サービスのコンパイルとインストール方法
php ソース コード データベースの構築テーブル構成ファイルエラー ログ方法
以上がオブジェクトをJSON文字列に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。