ParseError

(PHP 7, PHP 8)

简介

ParseError 在解析 PHP 代码时发生错误时抛出,例如当调用 eval() 时。

注意: ParseError 从 PHP 7.3.0 开始扩展 CompileError。以前,它扩展了 Error

类概要

class ParseError extends CompileError {
/* 继承的属性 */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* 继承的方法 */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
private Error::__clone(): void
}
添加笔记

用户贡献笔记 2 notes

1
SixPigPigWikiSix
1 年前
Parse Error 的优先级应该高于 Fatal Error,Parse Error 是所有 PHP 异常中优先级最高的。请参见以下示例
<?php
error_reporting
(E_ALL);
test()
//系统输出解析错误
?>
<?php
error_reporting
(E_WARNING);
test()
//系统输出解析错误
?>
<?php
error_reporting
(E_ERROR);
test()
//系统输出解析错误
?>
<?php
error_reporting
(E_PARSE);
test()
//系统输出解析错误
?>
-4
andrian dot test dot job at gmail dot com
4 年前
<?php
/*
* eval() 函数将他的参数作为 PHP 指令进行评估
* 因此参数必须符合 PHP 编码的标准
* 在这个例子中,分号丢失了
*/

try{

eval(
"echo 'toto' echo 'tata'");

}catch(
ParseError $p){

echo
$p->getMessage();
}

/*
* 如果你运行这段代码,结果与上面代码的结果不同
* PHP 将输出标准的解析错误:语法错误,....
*

eval("echo 'toto' echo 'tata'");

*/
To Top