Maison >développement back-end >tutoriel php >Solution à l'erreur fatale PHP : erreur non détectée : appel à une fonction non définie json_encode()
Si vous rencontrez le message d'erreur PHP Fatal error: Uncaught Error: Call to undefined function json_encode() lors de l'écriture d'un projet en PHP, pas de panique. En effet, votre version PHP ne prend pas en charge la fonction json_encode(). La fonction json_encode() est une fonction très couramment utilisée en PHP, utilisée pour convertir des tableaux ou des objets en chaînes JSON. Alors comment résoudre cette erreur ? Jetons un coup d'œil à la solution ci-dessous.
Vous devez d'abord vérifier votre version actuelle de PHP. Si votre version de PHP est inférieure à 5.2.0, vous devez d'abord mettre à niveau PHP vers une version supérieure à 5.2.0. La fonction json_encode() a été introduite à partir de la version 5.2.0.
Vous pouvez saisir php -v dans le terminal ou la ligne de commande pour afficher la version actuelle de PHP.
Si votre version de PHP est supérieure à 5.2.0 et que ce message d'erreur apparaît toujours, vous devez installer l'extension JSON.
Dans l'environnement Windows, vous pouvez trouver le fichier php_json.dll dans le dossier ext du répertoire d'installation PHP et le copier dans le répertoire PHP. Ajoutez ensuite extension=php_json.dll au fichier php.ini pour activer l'extension JSON.
Dans l'environnement Linux, vous pouvez exécuter la commande suivante pour installer l'extension JSON :
sudo apt-get install php7.0-json
sudo service php7.0-fpm restart
La commande ci-dessus est à titre de référence uniquement, en fonction de votre version PHP à ajuster.
Si vous avez installé l'extension JSON et que vous obtenez toujours cette erreur, cela peut être dû au fait que l'extension JSON n'est pas activée. Vous pouvez activer l'extension JSON en ajoutant le contenu suivant dans le fichier php.ini :
extension=json.so
ou activer manuellement l'extension JSON dans le code :
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); }
}
Dans cette méthode, nous définissons manuellement les fonctions json_encode() et json_decode(), ce qui garantit que notre code peut fonctionner sous n'importe quelle version de PHP Exécuté correctement.
Résumé
Parmi les trois méthodes ci-dessus, la plus recommandée est la deuxième méthode, qui consiste à installer l'extension JSON. Cela résout non seulement le problème de la fonction json_encode(), mais vous permet également d'utiliser davantage de fonctions et d'outils liés à JSON. Dans le même temps, afin de garantir que votre projet puisse s'exécuter normalement dans divers environnements, nous vous recommandons également d'ajouter le contenu ci-dessus à votre code pour garantir qu'il peut s'exécuter dans des environnements sans extensions JSON.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!