ralat tetapan php

WBOY
WBOYasal
2023-05-28 20:39:361148semak imbas

Semasa proses pembangunan PHP, anda mungkin menghadapi beberapa ralat. Untuk menghapuskan ralat ini dengan lebih baik, kami perlu menyediakan mekanisme pelaporan ralat PHP. Artikel ini akan memperkenalkan cara menyediakan pelaporan ralat PHP, serta beberapa jenis dan penyelesaian ralat biasa.

1. Cara menyediakan pelaporan ralat PHP

Dalam PHP, kami boleh menyediakan pelaporan ralat dengan mengubah suai error_reporting dan display_errors dalam fail php.ini.

Nilai error_reporting menentukan jenis ralat yang dilaporkan oleh PHP. Ia boleh ditetapkan kepada integer atau rentetan. Integer mewakili topeng binari jenis ralat ini. Contohnya:

error_reporting(E_ERROR | E_WARNING);

Ini bermakna hanya ralat E_ERROR dan E_WARNING dilaporkan.

Rentetan mewakili nama jenis ralat. Contohnya:

error_reporting("E_ERROR | E_WARNING");

Ini juga bermakna hanya ralat E_ERROR dan E_WARNING akan dilaporkan.

display_errors menentukan sama ada untuk memaparkan ralat. Ia boleh ditetapkan kepada Hidup atau Mati. Jika ditetapkan kepada Hidup, mesej ralat dihantar ke penyemak imbas. Contohnya:

display_errors = On

Jika ditetapkan kepada Mati, mesej ralat tidak akan dihantar ke penyemak imbas. Contohnya:

display_errors = Off

Jika anda berada dalam peringkat pembangunan, adalah disyorkan untuk menetapkan error_reporting kepada E_ALL dan tetapkan display_errors kepada On supaya anda boleh mengesan dan menyahpepijat ralat dalam masa apabila ia berlaku.

2. Jenis ralat biasa dan penyelesaian

  1. E_ERROR

E_ERROR mewakili ralat yang membawa maut. Apabila ralat ini berlaku, skrip berhenti melaksanakan. Ralat ini biasanya disebabkan oleh ralat sintaks, ralat masa jalan atau masalah seperti melebihi had memori. Contohnya:

PHP Parse error: syntax error, unexpected end of file

Ralat ini disebabkan oleh kurungan penutup yang hilang dalam kod. Penyelesaiannya adalah untuk mencari kurungan penutup yang hilang dan menambahnya.

  1. E_WARNING

E_WARNING menunjukkan ralat yang tidak membawa maut. Apabila ralat ini berlaku, skrip meneruskan pelaksanaan. Ralat ini biasanya disebabkan oleh bilangan parameter yang tidak mencukupi, penggunaan fungsi atau pembolehubah yang tidak ditentukan, dsb. Contohnya:

Warning: Division by zero

Ralat ini disebabkan oleh pembahagian nombor dengan sifar. Penyelesaiannya adalah untuk memeriksa sama ada dividen adalah sifar atau menukar dividen kepada nilai bukan sifar.

  1. E_NOTICE

E_NOTICE mewakili ralat amaran. Apabila ralat ini berlaku, skrip meneruskan pelaksanaan. Ralat ini biasanya disebabkan oleh penggunaan pemalar tidak ditentukan, pembolehubah tidak ditentukan, pembolehubah tidak diinisialisasi, penggunaan tatasusunan tidak ditentukan, dsb. Contohnya:

Notice: Undefined variable

Ralat ini disebabkan oleh penggunaan pembolehubah yang tidak ditentukan. Penyelesaiannya ialah menggunakan fungsi isset() untuk menyemak sama ada pembolehubah telah ditakrifkan.

  1. E_PARSE

E_PARSE menunjukkan ralat sintaks. Apabila ralat ini berlaku, skrip berhenti melaksanakan. Ralat ini biasanya disebabkan oleh ralat sintaks. Contohnya:

Parse error: syntax error, unexpected T_VARIABLE

Ralat ini disebabkan oleh penggunaan nama pembolehubah yang tidak dikenali dalam kod. Penyelesaiannya adalah untuk mencari baris kod yang salah dan mengubah suainya.

  1. E_COMPILE_ERROR

E_COMPILE_ERROR menunjukkan ralat masa kompilasi. Apabila ralat ini berlaku, skrip berhenti melaksanakan. Ralat ini biasanya disebabkan oleh ralat yang berlaku semasa menyusun kod. Contohnya:

Fatal error: Call to undefined function

Ralat ini disebabkan oleh memanggil fungsi yang tidak ditentukan. Penyelesaiannya adalah untuk memeriksa sama ada nama fungsi itu betul atau sama ada fail yang mengandungi fungsi itu disertakan.

  1. Perbezaan antara E_WARNING dan E_NOTICE

E_WARNING dan E_NOTICE adalah kedua-duanya ralat amaran. Perbezaan antara mereka ialah E_WARNING lebih teruk. Biasanya, E_WARNING menunjukkan ralat logik dalam kod atau kekurangan data penting, yang perlu diselesaikan dalam masa. E_NOTICE mewakili masalah umum dengan kod, yang tidak akan menyebabkan kod ranap, tetapi ia juga perlu diselesaikan dalam masa.

  1. Jenis ralat lain

Selain jenis ralat biasa di atas, terdapat beberapa jenis ralat lain, seperti E_DEPRECATED (menunjukkan bahawa kaedah yang telah ditamatkan atau fungsi) dan E_USER_ERROR (menunjukkan ralat yang ditentukan pengguna). Jenis ralat ini jarang berlaku, tetapi perlu ditangani segera apabila ditemui.

3. Ringkasan

Menyediakan mekanisme pelaporan ralat PHP boleh membantu kami menemui dan menyelesaikan ralat dalam kod tepat pada masanya. Semasa pembangunan, adalah disyorkan untuk menetapkan error_reporting kepada E_ALL dan display_errors kepada Hidup. Jenis ralat biasa termasuk E_ERROR, E_WARNING, E_NOTICE, E_PARSE, E_COMPILE_ERROR, dsb. Apabila menghadapi ralat, anda perlu menganalisis mesej ralat dengan teliti dan mengambil penyelesaian yang sesuai.

Atas ialah kandungan terperinci ralat tetapan php. 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