php7 masalah baru tidak akan melaporkan tidak ditentukan Penyelesaian: 1. Tukar tahap pelaporan ralat PHP dengan mengubah suai fail php.ini 2. Gunakan fungsi error_reporting dalam kod untuk menetapkan tahap pelaporan ralat secara dinamik; kosong Tunggu fungsi untuk menyemak sama ada pembolehubah telah ditentukan; 4. Gunakan mod ketat PHP untuk memaksa pembolehubah diisytiharkan sebelum digunakan, supaya masalah yang berpotensi dapat ditemui dan dibaiki lebih awal.
Persekitaran pengendalian artikel ini: sistem Windows 10, versi PHP7.4, komputer Dell G3.
Dalam PHP 7, apabila kita mengakses pembolehubah yang tidak ditentukan atau memanggil fungsi yang tidak ditentukan, tiada ralat akan dilaporkan Sebaliknya, ralat tahap E_NOTICE akan dilemparkan dan nilai NULL akan dikembalikan. Perubahan dalam tingkah laku ini bertujuan untuk meningkatkan keteguhan dan kebolehbacaan kod.
Walau bagaimanapun, bagi sesetengah pembangun, mereka mungkin berharap untuk masih mendapat ralat pembolehubah yang tidak ditentukan dalam PHP 7, supaya masalah yang berpotensi dapat ditemui dan diperbaiki dalam masa. Nasib baik, PHP 7 menyediakan beberapa pilihan untuk mengawal tingkah laku ini.
1. Tukar tahap pelaporan ralat PHP dengan mengubah suai fail php.ini.
Dalam fail php.ini, anda boleh menemui item konfigurasi yang dipanggil error_reporting, yang menentukan ralat yang harus dilaporkan oleh PHP. Secara lalai, nilai item konfigurasi ini ialah E_ALL & ~E_NOTICE, yang bermaksud PHP akan melaporkan semua ralat kecuali ralat peringkat E_NOTICE. Kami boleh mengubah suai ini kepada E_ALL untuk membolehkan pelaporan semua ralat, termasuk ralat untuk pembolehubah yang tidak ditentukan.
2 Gunakan fungsi error_reporting dalam kod untuk menetapkan tahap pelaporan ralat secara dinamik.
Sebagai contoh, kita boleh menggunakan pernyataan berikut pada permulaan kod untuk membolehkan pelaporan semua ralat:
error_reporting(E_ALL);
3 Gunakan fungsi seperti isset dan kosong untuk menyemak sama ada pembolehubah ditakrifkan.
Fungsi ini boleh membantu kita menilai sebelum mengakses pembolehubah dan mengelak daripada menggunakan pembolehubah tidak ditentukan.
4. Gunakan mod ketat PHP untuk memaksa pembolehubah diisytiharkan sebelum digunakan.
Mod ketat boleh didayakan dengan menambahkan pernyataan berikut pada permulaan kod anda:
declare(strict_types=1);
Dalam mod ketat, PHP akan membuang ralat apabila mengakses pembolehubah tidak ditentukan dan tidak akan memulakannya secara automatik kepada NULL. Ini membantu kami mengesan dan menyelesaikan masalah yang berpotensi lebih awal.
Ringkasan
Jika kita masih mahu mendapatkan ralat pembolehubah yang tidak ditentukan dalam PHP 7, kita boleh menukar tahap pelaporan ralat dengan mengubah suai fail php.ini atau menggunakan fungsi error_reporting, dan menggunakan fungsi seperti isset dan kosong untuk menyemak pembolehubah Sama ada ia ditakrifkan, dan membolehkan mod ketat untuk menguatkuasakan pengisytiharan pembolehubah. Kaedah ini boleh membantu kami menemui dan menyelesaikan masalah yang berpotensi tepat pada masanya semasa proses pembangunan, dan meningkatkan keteguhan dan kebolehbacaan kod.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika penambahan baharu dalam php7 tidak melaporkan tidak ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!