Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penyelesaian kepada PHP Ralat maut: Ralat Tidak Ditangkap: Panggilan ke fungsi tidak ditentukan json_encode()

Penyelesaian kepada PHP Ralat maut: Ralat Tidak Ditangkap: Panggilan ke fungsi tidak ditentukan json_encode()

王林
王林asal
2023-06-22 13:42:382465semak imbas

Jika anda menemui mesej ralat PHP Ralat maut: Ralat Tidak Ditangkap: Panggil ke fungsi tidak ditentukan json_encode() semasa menulis projek dalam PHP, jangan panik. Ini kerana versi PHP anda tidak menyokong fungsi json_encode(). Fungsi json_encode() ialah fungsi yang sangat biasa digunakan dalam PHP, digunakan untuk menukar tatasusunan atau objek kepada rentetan JSON. Jadi bagaimana untuk menyelesaikan ralat ini? Mari kita lihat penyelesaian di bawah.

  1. Semak versi PHP

Mula-mula anda perlu menyemak versi PHP semasa anda Jika versi PHP anda lebih rendah daripada 5.2.0, maka anda perlu meningkatkan PHP kepada 5.2 .0 atau ke atas. Fungsi json_encode() telah diperkenalkan bermula dari versi 5.2.0.

Anda boleh memasukkan php -v dalam terminal atau baris arahan untuk melihat versi PHP semasa.

  1. Pasang sambungan JSON

Jika versi PHP anda lebih tinggi daripada 5.2.0 dan mesej ralat ini masih muncul, anda perlu memasang sambungan JSON.

Dalam persekitaran Windows, anda boleh mencari fail php_json.dll dalam folder ext direktori pemasangan PHP dan menyalinnya ke direktori PHP. Kemudian tambahkan extension=php_json.dll pada fail php.ini untuk mendayakan sambungan JSON.

Dalam persekitaran Linux, anda boleh menjalankan arahan berikut untuk memasang sambungan JSON:

sudo apt-get install php7.0-json

sudo service php7.0- fpm restart

Arahan di atas adalah untuk rujukan sahaja dan harus dilaraskan mengikut versi PHP anda.

  1. Dayakan sambungan json

Jika anda memasang sambungan JSON dan masih mendapat ralat ini, ini mungkin disebabkan sambungan JSON tidak didayakan. Anda boleh mendayakan sambungan JSON dengan menambahkan kandungan berikut dalam fail php.ini:

extension=json.so

atau dayakan sambungan JSON secara manual dalam kod:

jika (!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);

}

}

In kaedah ini, kami mentakrifkan fungsi json_encode() dan json_decode() secara manual, yang boleh memastikan kod kami boleh dilaksanakan dengan betul di bawah mana-mana versi PHP.

Ringkasan

Antara ketiga-tiga kaedah di atas, yang paling disyorkan adalah kaedah kedua, iaitu memasang sambungan JSON. Ini bukan sahaja menyelesaikan masalah fungsi json_encode(), tetapi juga membolehkan anda menggunakan lebih banyak fungsi dan alatan berkaitan JSON. Pada masa yang sama, untuk memastikan projek anda boleh berjalan seperti biasa dalam pelbagai persekitaran, kami juga mengesyorkan anda menambah kandungan di atas pada kod anda untuk memastikan ia boleh dijalankan dalam persekitaran tanpa sambungan JSON.

Atas ialah kandungan terperinci Penyelesaian kepada PHP Ralat maut: Ralat Tidak Ditangkap: Panggilan ke fungsi tidak ditentukan json_encode(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn