バージョン 5.2 以降、PHP は json_encode() 関数と json_decode() 関数をネイティブに提供し、前者はエンコードに使用され、後者はデコードに使用されます。
1. json_encode()
この関数は主に配列とオブジェクトを json 形式に変換するために使用されます。まず配列変換の例を見てみましょう:
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e '= >5);
echo json_encode($arr);
上記のコードの出力結果は次のとおりです:
{"a":1,"b":2,"c":3,"d":4,"e":5}
オブジェクト変換の別の例を見てください:
$obj->body = 'another post';
$obj->id = 21;
$obj-> ;approved = true;
$obj->favorite_count = 1;
$obj->status = NULL;
echo json_encode($obj);
上記のコードの出力は次のとおりです:
{
"body":"another post",
"id":21,
「承認済み」:true,
"favorite_count":1,
"status":null
}
jsonはutf-8でエンコードされた文字のみを受け入れるため、json_encode()のパラメータはutf-8でエンコードされている必要があり、そうでない場合はnull文字またはnullが取得されます。中国語で GB2312 エンコードを使用する場合、または外国語で ISO-8859-1 エンコードを使用する場合は、この点に特別な注意を払う必要があります。
2. インデックス付き配列と連想配列
PHP は 2 種類の配列をサポートしています。1 つは「値」(value) のみを保存するインデックス付き配列、もう 1 つは保存される「名前と値のペア」です。連想配列。
JavaScript は連想配列をサポートしていないため、json_encode() はインデックス付き配列のみを配列形式に変換し、連想配列をオブジェクト形式に変換します。
たとえば、今はインデックス付き配列があります:
$arr = Array('one', 'two', 'three');
echo json_encode($arr);
出力結果は次のとおりです:
["one","two","three"]
連想配列に変更する場合:
$arr = Array('1'=>'one', '2'=>'two', '3'=>'three');
echo json_encode ($arr);
結果は変わります:
{"1":"one","2":"two","3":"three"}
データ形式が「[]」(配列)から「{}」(オブジェクト)に変更されていることに注意してください。
「インデックス配列」を「オブジェクト」に強制的に入れる必要がある場合は、次のように書くことができます
json_encode( (object)$arr );
または:
json_encode ( $arr, JSON_FORCE_OBJECT );
3. クラス変換
以下は PHP クラスです:
class Foo {
const ERROR_CODE = '404';
public $public_ex = 'これは公開です';
private $private_ex = 'これはプライベートです!';
protected $protected_ex = 'これは保護されるべきです';
パブリック関数 getErrorCode() {return self::ERROR_CODE;
}
}
$foo_json = json_encode($foo) ;
echo $foo_json ;
{"public_ex":"this is public"}
パブリック変数 (public) を除いて、他のもの (定数、プライベート変数、メソッドなど) が欠落していることがわかります。
4. json_decode()
この関数は、json テキストを対応する PHP データ構造に変換するために使用されます。以下に例を示します:
$obj = json_decode($json);
print $obj ->{ 'foo'}; // 12345
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json)) ;
結果は、PHP オブジェクトを生成します:
["a"] => int(1)
["b" ] => int(2)
["c"] => int(3)
["e"] => 5)
}
PHP 連想配列の生成を強制したい場合は、json_decode() にパラメーター true を追加する必要があります:
$json = '{"a":1,"b":2,"c":3,"d" :4," e":5}';
var_dump(json_decode($json),true);
結果は連想配列になります:
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
5 , json_decode()のよくあるエラー
以下の3つのjsonの書き方はどれも間違いです、どこにエラーがあるかわかりますか?
$bad_json = "{ 'bar': 'baz' }";
$bad_json = '{ bar: "baz" }';
$bad_json = '{ " bar": "baz", }';
これら 3 つの文字列に対して json_decode() を実行すると、null が返され、エラーが報告されます。
最初の間違いは、JSON の区切り文字では単一引用符ではなく二重引用符の使用のみが許可されていることです。 2 番目の間違いは、JSON の名前と値のペアの「名前」 (コロンの左側の部分) では、いかなる場合でも二重引用符を使用する必要があることです。 3 番目のエラーは、最後の値の後にカンマを追加できないことです。
さらに、json はオブジェクトと配列を表すためにのみ使用できます。json_decode() が文字列または値に対して使用された場合、null が返されます。
var_dump(json_decode("Hello World")); //null

この記事では、PHPについて説明し、その完全なフォーム、Web開発での主要な使用、PythonとJavaとの比較、および初心者の学習のしやすさについて説明します。

PHPは、$ \ _ postおよび$ \ _を使用してフォームデータを処理し、検証、消毒、安全なデータベースインタラクションを通じてセキュリティを確保します。

この記事では、PHPとASP.NETを比較して、大規模なWebアプリケーション、パフォーマンスの違い、セキュリティ機能への適合性に焦点を当てています。どちらも大規模なプロジェクトでは実行可能ですが、PHPはオープンソースであり、プラットフォームに依存しませんが、ASP.NET、

PHPの症例感度は変化します:関数は鈍感であり、変数とクラスは感度があります。ベストプラクティスには、一貫した命名と、比較のためにケース非感受性関数を使用することが含まれます。

この記事では、PHPのページリダイレクトのさまざまな方法について説明し、ヘッダー()関数に焦点を当て、「すでに送信されているヘッダー」エラーなどの一般的な問題に対処します。

記事では、PHPでヒントを示すタイプについて説明します。これは、機能内の予想データ型を指定する機能です。主な問題は、タイプの施行を通じてコードの品質と読みやすさを改善することです。

この記事では、PHPのデータベースアクセスの拡張機能であるPHPデータオブジェクト(PDO)について説明します。これは、データベースの抽象化やより良いエラー処理など、準備されたステートメントとMySQLIに対する利点を通じてセキュリティを強化する上でのPDOの役割を強調しています。

記事では、PHP APIの作成とセキュリティについて説明し、LaravelなどのフレームワークやBest Security Practicesなどのフレームワークを使用して、エンドポイントの定義からパフォーマンスの最適化までの手順を詳細に説明します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1
使いやすく無料のコードエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック









