Bagaimana untuk mendapatkan mesej ralat yang berguna dalam PHP
P粉590929392
P粉590929392 2023-08-20 14:30:17
0
2
590
<p>Banyak kali saya akan cuba menjalankan skrip PHP dan hanya akan mendapat skrin kosong. Tiada mesej ralat, hanya skrin kosong. Puncanya mungkin ralat sintaks mudah (tanda kurungan yang salah, titik bertitik hilang), atau panggilan fungsi yang gagal, atau sesuatu yang lain sepenuhnya. </p> <p>Sukar untuk mengetahui apa yang berlaku. Saya akhirnya mengulas kod itu, menambah pernyataan "gema" di sana sini, dan lain-lain untuk cuba mengecilkan skop masalah. Tetapi mesti ada cara yang lebih baik, bukan? </p> <p>Adakah terdapat cara untuk menjadikan PHP menjana mesej ralat yang berguna seperti Java? </p>
P粉590929392
P粉590929392

membalas semua(2)
P粉608647033

Kod berikut membolehkan semua ralat:

ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);

Boleh juga rujuk pautan berikut:

P粉817354783

Tunjukkan ralat dimatikan secara lalai kerana anda tidak mahu "pelanggan" melihat mesej ralat.

Sila lihat halaman ini dalam dokumentasi PHP untuk mendapatkan maklumat tentang dua arahan: error_reportingdisplay_errors。您可能想更改的是display_errors.

Jadi anda ada 3 pilihan:

(1) Anda boleh menyemak fail log ralat kerana ia akan mengandungi semua ralat (melainkan pengelogan dilumpuhkan). Untuk mendayakan pengelogan ralat, pastikan log_errors配置指令设置为On. Log juga membantu apabila ralat tidak disebabkan oleh PHP tetapi oleh pelayan web.

(2) Anda boleh menambah 2 baris kod berikut untuk membantu anda menyahpepijat ralat bukan sintaks yang berlaku dalam fail yang sama:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

Perhatikan bahawa pada pelayan pengeluaran, yang terakhir harus ditetapkan kepada Off (tetapi hanya yang terakhir, kerana anda masih perlu mengetahui dari fail log semua ralat yang berlaku).

Namun, untuk ralat sintaks yang berlaku dalam fail yang sama, arahan di atas tidak akan berfungsi dan anda perlu mendayakannya dalam php.ini. Jika anda tidak boleh mengubah suai fail php.ini, anda juga boleh cuba menambah baris berikut pada fail .htaccess anda, walaupun ini jarang disokong sekarang:

php_flag  display_errors        on
php_value error_reporting       -1

(3) Pilihan lain ialah menggunakan editor yang menyemak ralat semasa anda menaip, seperti PhpEd, VSCode atau PHPStorm. Mereka semua datang dengan penyahpepijat yang memberikan maklumat yang lebih terperinci. (Penyahpepijat PhpEd sangat serupa dengan xdebug dan disepadukan terus ke dalam editor, jadi anda boleh melakukan semuanya dengan satu program.)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan