PHP でプロジェクトを作成するときに、「PHP 致命的エラー: キャッチされないエラー: 未定義関数 json_encode() を呼び出します」というエラー メッセージが表示された場合でも、パニックにならないでください。これは、お使いの PHP バージョンが json_encode() 関数をサポートしていないためです。 json_encode() 関数は、PHP で非常に一般的に使用される関数で、配列またはオブジェクトを JSON 文字列に変換するために使用されます。では、このエラーを解決するにはどうすればよいでしょうか?以下の解決策を見てみましょう。
まず、現在の PHP バージョンを確認する必要があります。PHP バージョンが 5.2.0 より前の場合は、PHP を 5.2 にアップグレードする必要があります。 .0以上。 json_encode() 関数はバージョン 5.2.0 から導入されました。
ターミナルまたはコマンドラインに php -v と入力すると、現在の PHP バージョンを表示できます。
PHP バージョンが 5.2.0 以降でもこのエラー メッセージが引き続き表示される場合は、JSON 拡張機能をインストールする必要があります。
Windows 環境では、PHP インストール ディレクトリの ext フォルダーにある php_json.dll ファイルを見つけて、PHP ディレクトリにコピーします。次に、extension=php_json.dll を php.ini ファイルに追加して、JSON 拡張機能を有効にします。
Linux 環境では、次のコマンドを実行して JSON 拡張機能をインストールできます:
sudo apt-get install php7.0-json
sudo service php7.0 -fpm restart
上記のコマンドは参考用であり、PHP バージョンに応じて調整する必要があります。
JSON 拡張機能をインストールしてもこのエラーが発生する場合は、JSON 拡張機能が有効になっていないことが原因である可能性があります。 JSON 拡張機能を有効にするには、次の内容を php.ini ファイルに追加します:
extension=json.so
または、コード内で手動で JSON 拡張機能を有効にします:
if (!function_exists ('json_decode')) {
function json_decode($content, $assoc = false) { require_once 'Services/JSON.php'; if ($assoc) { $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE); } else { $json = new Services_JSON; } return $json->decode($content); }
}
if (!function_exists('json_encode')) {
function json_encode($content) { require_once 'Services/JSON.php'; $json = new Services_JSON; return $json->encode($content); }
}
# #このメソッドでは、json_encode() 関数と json_decode() 関数を手動で定義しました。これにより、コードがどの PHP バージョンでも正しく実行されることが保証されます。 概要上記の 3 つの方法のうち、2 番目の方法が最も推奨されます。これは、JSON 拡張機能をインストールすることです。これにより、 json_encode() 関数の問題が解決されるだけでなく、より多くの JSON 関連の関数やツールを使用できるようになります。同時に、プロジェクトがさまざまな環境で正常に実行できるようにするために、上記の内容をコードに追加して、JSON 拡張機能のない環境でも実行できるようにすることをお勧めします。以上がPHP 致命的エラーの解決策: キャッチされないエラー: 未定義関数 json_encode() の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。