2024年PHP开发者大会日本站

解析错误

(PHP 7, PHP 8)

简介

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

注意 从PHP 7.3.0开始,ParseError 继承自 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 条注释

SixPigPigWikiSix
1年前
解析错误的优先级应该高于致命错误,解析错误在所有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()
//系统输出解析错误
?>
andrian dot test dot job at gmail dot com
5年前
<?php
/*
* eval() 函数会将其参数作为 PHP 指令进行评估
* 因此参数必须符合 PHP 代码的标准
* 在此示例中,分号缺失
*/

try{

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

}catch(
ParseError $p){

echo
$p->getMessage();
}

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

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

*/
To Top