Bagaimana untuk mendapatkan mesej ralat yang berguna dalam PHP?
P粉283559033
P粉283559033 2023-08-23 17:26:55
0
2
522
<p>Saya sering cuba menjalankan skrip PHP dan hanya 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 menentukan masalahnya. Saya akhirnya mengulas kod itu, menaip pernyataan "gema" di sana sini, dsb. untuk mencuba dan mengecilkan masalah. Tetapi mesti ada cara yang lebih baik, bukan? </p> <p>Adakah terdapat cara untuk menjadikan PHP menghasilkan mesej ralat yang berguna, seperti Java? </p>
P粉283559033
P粉283559033

membalas semua(2)
P粉190883225

Yang berikut membolehkan semua ralat:

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

Lihat juga pautan di bawah

P粉575055974

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

Lihat halaman ini dalam dokumentasi PHP untuk maklumat tentang 2 arahan: error_reportingdisplay_errorsdisplay_errors Mungkin pepijat yang anda ingin ubah.

Jadi anda ada 3 pilihan:

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

(2) Anda boleh menambah dua baris berikut, yang akan membantu anda nyahpepijat ralat bukan sintaks yang berlaku dalam fail yang sama:

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

Perhatikan bahawa pada pelayan langsung, yang terakhir harus ditetapkan kepada 关闭 (tetapi hanya yang terakhir, kerana anda masih perlu mengetahui dari fail log sebarang 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 php.ini, anda juga boleh cuba menambah baris berikut pada fail .htaccess anda, walaupun ini jarang disokong pada hari ini:

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 menyediakan maklumat yang lebih terperinci. (Penyahpepijat PhpEd sangat serupa dengan xdebug dan disepadukan terus ke dalam editor supaya anda boleh melakukan semuanya dengan 1 program.)

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