Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】JSON_ERROR_INF_OR_NAN定数の使い方

JSON_ERROR_INF_OR_NAN定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

JSON_ERROR_INF_OR_NAN定数は、PHPでJSONデータを扱う際に発生する特定のエンコードエラーを表す定数です。JSON(JavaScript Object Notation)は、Webアプリケーションなどでデータのやり取りに広く利用される軽量なデータ形式ですが、その標準仕様には表現できない特定の数値が存在します。

この定数が示すエラーは、無限大(infinity、PHPではINFとして表現されます)や非数(Not a Number、PHPではNANとして表現されます)といった特殊な数値が、JSONデータに変換されようとした場合に発生します。JSONの標準仕様では、無限大や非数を直接表現する方法が定義されていないため、PHPのjson_encode()関数などでこれらの特殊な数値を含むデータをJSON形式に変換しようとすると、このJSON_ERROR_INF_OR_NANエラーが発生します。

例えば、ゼロ除算によって得られる無限大の値や、無効な数学演算の結果として生じる非数の値をJSON文字列に変換しようとした際、json_encode()は失敗し、そのエラーの種類をjson_last_error()関数で確認すると、この定数が返されます。

システムエンジニアは、この定数を利用してJSON変換時のエラーを具体的に特定し、アプリケーションの堅牢性を高めることができます。このエラーを受け取った際には、JSONに変換する前のデータに無限大や非数が含まれていないかを確認し、必要に応じてこれらの値を事前に処理したり、他の形式に置き換えたりするなどの対策を講じることが重要です。

構文(syntax)

1if (json_last_error() === JSON_ERROR_INF_OR_NAN) {
2    // ...
3}

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

JSON_ERROR_INF_OR_NANは、JSONエンコード中に無限大またはNaN(非数)の値が含まれていた場合に発生するエラーコードを表す整数値です。

関連コンテンツ