PHP 错误类型
基本上,错误是由编写错误的语法或错误的代码引起的程序错误。错误消息在您的浏览器上显示,包含文件名,位置,描述错误的消息和发生错误的行号。
通常有不同类型的错误。 在PHP中,主要考虑四种类型的错误:
- 语法错误或解析错误
- 致命错误
- 警告错误
- 注意错误
我们将详细讨论所有这些错误,并提供示例:
语法错误或解析错误
语法错误是源代码语法中的错误,这可能是由于程序员的关注或知识不足而导致的。它也被称为 解析错误 。编译器用于在编译时捕获语法错误。
注意:语法错误会停止代码的执行。
这些错误可能发生的常见原因包括未关闭的引号,缺少分号,多余或缺少的括号,或未关闭的括号等。在编译程序时,编译器可以捕获语法错误。它会给出解析错误或语法错误的消息。
示例1:缺少分号
<?php
/*------------------语法 error-------------------*/
echo "Alex: Hie! I'm Alex. </br>";
echo "Bob: I'm Bob. How are you?"
echo "Alex: I'm good! and you?";
echo "Bob: I'm also good";
?>
输出
Parse error: 语法 error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in C:\xampp\htdocs\program\fatalerror.php on line 5
解释: 在上面的示例中,第5行缺少了一个分号(;)。因此,它产生了一个解析错误,并在输出中显示了一个错误消息。
示例2:缺少美元符号
<?php
/*------------------语法 error-------------------*/
telecom = "Airtel";
automobile = "Jaguar";
echotelecom;
echo $automobile;
?>
输出
Parse error: 语法 error, unexpected '=' in C:\xampp\htdocs\program\fatalerror.php on line 5
解释: 在上面的示例中,第5行缺少了美元符号($)。因此,它生成了一个解析错误,并在浏览器中显示了一个错误消息,如输出中所示。
致命错误
致命错误是另一种类型的错误,它是由于使用了未定义的函数而发生的。PHP编译器可以理解PHP代码,但也能识别未定义的函数。这意味着当调用函数而没有提供定义时,PHP编译器会生成一个致命错误。
当调用一个未定义的函数时,会生成一个致命错误。看下面的示例,其中包含致命错误 –
示例调用未定义的函数
<?php
/*------------------fatal error-------------------*/
function add(f1,f2) {
sum =f1 + f2;
echo "Addition:" .sum;
}
f1 = 23;f2 = 56;
//call the function that is not defined
//Generate fatal error
catch_fatal_error();
//echo "Fatal Error";
?>
在上面的代码中,我们定义了add()函数,但调用了另一个函数,即catch_fatal_error()。因此,它会生成一个致命错误并在浏览器上打印错误消息,如下所示:
输出
Fatal error: Uncaught Error: Call to undefined function catch_fatal_error() in C:\xampp\htdocs\program\fatalerror.php:15 Stack trace: #0 {main} thrown in C:\xampp\htdocs\program\fatalerror.php on line 13
警告错误
当程序员试图包含一个缺失的文件时会生成警告。PHP函数调用了一个不存在的文件。警告错误不会停止/阻止程序的执行。
生成警告错误的主要原因是向函数传递了不正确的参数数量,或者包含了一个缺失的文件。
示例包含缺失的文件
<?php
/*-------------------warning error------------------*/
$cmpny = 'javatpoint';
echo "Warning Error: ";
//include a file in the code
include ('jtp.php');
?>
输出
Warning Error:
Warning: include(jtp.php): failed to open stream: No such file or directory in C:\xampp\htdocs\program\fatalerror.php on line 7
Warning: include(): Failed opening 'jtp.php' for inclusion (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\program\fatalerror.php on line 7
解释: 在这个示例中,我们试图在程序中包含一个不存在的文件。因此,它生成了一个警告并显示了一个错误消息。
注意错误
注意错误和警告错误相同。当程序包含一些错误时,会发生注意错误。但它允许/继续执行带有提示错误的程序。注意错误不会阻止代码的执行。 例如 - 访问未定义的变量。
一般情况下,当我们试图使用或访问一个未定义的变量时,会发生注意错误。请看下面的示例理解它-
示例:访问未定义的变量
<?php
/*------------------notice error-------------------*/
telecom = "Airtel";
echotelecom;
echo $automobile;
?>
输出
Airtel
Notice: Undefined variable: automobile in C:\xampp\htdocs\program\fatalerror.php on line 6
解释: 在上面的示例中,我们试图使用一个未定义的变量 $automobile 。因此,它生成了一个通知 未定义的变量 并继续执行程序。