Peristiwa berlakunya sisihan keputusan daripada keputusan yang tepat diistilahkan sebagai Ralat. Dalam PHP, ralat boleh dijana kerana penggunaan format pengekodan yang salah atau pelaksanaan fungsi yang tidak boleh dilaksanakan. Berdasarkan punca dan tahap keterukan, ralat dalam PHP dikategorikan dalam 4 jenis, seperti:
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Mari bincangkan Jenis Ralat dalam PHP.
Dalam PHP, skrip perlu mengikut tatabahasa standard untuk membangunkan kod boleh laku. Apabila sintaks kod bertulis terpesong daripada standard, ralat sintaks berlaku. Ia juga dipanggil sebagai ralat parse. Ralat ini akan disemak dalam peringkat penyusunan itu sendiri dan pelaksanaan kod akan dihentikan. Ia tidak membenarkan pelaksanaan melainkan ralat tidak diperbaiki dan kompilasi selesai tanpa sebarang kecacatan sintaks. Pemalar ralat yang digunakan untuk mewakili ralat penghuraian masa (sintaks) penyusunan: E_PARSE
Contoh:
Coretan kod di bawah dibangunkan untuk memberikan nilai kepada pembolehubah PHP dan memaparkan nilai simpanan pada tetingkap output.
<?php $Correct_Var = "Writing a code to demonstrate Syntax(Parse Error)"; Incorrect_Var = "The '$' symbol is missing for variable y!!!"; echo $Correct_Var; echo Incorrect_Var; ?>
Output:
Pengkompil PHP memahami kewujudan sebarang pembolehubah apabila rentetan dikaitkan dengan simbol $. Dalam kod di atas, takrif pembolehubah Incorrect_Var tidak memenuhi tatabahasa, oleh itu pengkompil membuang ralat sintaks untuk kod dan pelaksanaan terganggu.
Ralat ini timbul apabila skrip PHP cuba memproses sebarang maklumat yang tidak sah seperti cuba melakukan operasi fail pada fail yang tidak wujud atau cuba memanggil fungsi dengan bilangan nilai input iaitu berbeza daripada bilangan argumen yang hadir dalam definisi fungsi panggilan. Ini adalah ralat yang serius tetapi tidak menghentikan pelaksanaan program dan berakhir dengan mempamerkan hasil yang tidak dijangka. Pemalar ralat yang digunakan untuk mewakili amaran masa larian tanpa menamatkan pelaksanaan skrip: E_WARNING
Contoh:
Coretan kod di bawah ditulis untuk memanggil fail skrip lain dalam pengaturcaraan semasa.
<?php echo "Beginning of program execution"; echo "<br>"; echo "<br>"; $Correct_Var = "Writing a code to demonstrate Warning Error"; echo $Correct_Var; echo "<br>"; echo "<br>"; include ("MissingScript.php"); //Calling the script file which is not available echo "Ending of program execution"; ?>
Output:
Menurut pengaturcaraan, pengkompil berjaya menyusun kod dan memulakan pelaksanaan. Pelaksanaan diteruskan secara berurutan. Untuk arahan termasuk (“MissingScript.php”), ia sedang mencari skrip dalam laluan lalai …/usr/share/php dan tidak menemui sebarang skrip dengan nama yang diberikan. Oleh itu, ia berakhir dengan menghasilkan mesej amaran untuk arahan khusus itu dan melaksanakan seluruh kod seperti yang direka.
Ralat ini ditemui dalam PHP apabila terdapat sebarang pengekodan yang tidak sah telah dibangunkan dalam skrip. Ini dikategorikan sebagai ralat tidak kritikal yang tidak menghentikan pelaksanaan, berakhir dengan menghasilkan mesej ralat. Pemalar ralat yang digunakan untuk mewakili mesej notis masa Jalankan, terhasil kerana kehadiran kod tidak sah: E_NOTICE
Contoh:
<?php echo "Beginning of program execution"; echo "<br>"; echo "<br>"; $Correct_Var = "Writing a code to demonstrate Notice Error"; echo $InCorrect_Var; //Try to display value stored in an undefined variable echo "<br>"; echo "<br>"; echo "Ending of program execution"; ?>
Output:
Pengkompil tidak mengenali pembolehubah $InCorrect_Var kerana ia tidak ditakrifkan dalam kod. Oleh itu ia membuang ralat Notis.
Ralat masa kompilasi yang dihadapi disebabkan oleh sebarang arahan yang tidak sah seperti tiada definisi fungsi untuk fungsi panggilan, dicipta sebagai ralat maut. Tahap keterukan jenis ralat ini adalah kritikal dan oleh itu ia tidak membenarkan pelaksanaan diteruskan dan membuang mesej ralat maut sebagai output. Pemalar ralat yang digunakan untuk mewakili ralat maut yang mencetuskan penamatan skrip: E_ERROR
Contoh:
Coretan kod di bawah direka bentuk untuk memanggil demonstrasi aplikasi fungsi dalam skrip PHP.
<?php echo "Beginning of program execution"; echo "<br>"; echo "<br>"; $Correct_Var = "Writing a code to demonstrate Fatal Error"; echo $Correct_Var; echo "<br>"; echo "<br>"; UndefinedFunction();//Calling a function which is not defined in the script echo "Ending of program execution"; ?>
Output:
Memandangkan kod dibangunkan mengikut tatabahasa pengekodan yang betul, ia tidak menangkap sebarang ralat semasa penyusunan. Dalam fasa pelaksanaan ia tidak boleh menyahkod perintah untuk memanggil fungsi UndefinedFunction(), kerana ia tidak ditakrifkan dalam skop program. Oleh itu, ia mengakibatkan melontarkan mesej ralat yang membawa maut dan pelaksanaan program dihentikan.
1. Error handling is easy in PHP. If any developer does not have access to the complete code for any application, it is recommended to use error handling functions in possible scenarios.
2. In order to avoid new error in the PHP programming, developer is expected to follow proper coding guidelines and stays alert towards probabilities of various types of errors, warnings and notices.
3. It is recommended not to allow any error or warning or notice to be displayed to the user. Hence the best practice for any safe PHP programming to ensure the required configuration to be available in php.ini file.
The desired value for the below variables are:
error_reporting as ' E_ALL' display_errors as 'Off' log_errors as 'On'
The below code can be included in any PHP script to configure the desired values in the php.ini file:
error_reporting(E_ALL); ini_set('display_errors','0'); ini_set('log_errors','1');
4. PHP incorporates the feature to enable developer to write own customized error handling functions.
This function needs to be designed with some specific guidelines as follows:
Function should be capable of handling minimum of two input parameters: error message and error level and maximum of 5 input parameters by including the optional parameters such as line number, file and error context.
Atas ialah kandungan terperinci Jenis Ralat dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!