gpt4 book ai didi

php - 如何捕获函数 "include"PHP 的错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:56:58 25 4
gpt4 key购买 nike

我需要捕获函数“include”PHP 的最后一个错误。

我测试了函数“Exceptions”,但不幸的是我写在了函数“include”之上。

如果我在函数“include”之后写不显示异常。

示例 1:

try{
throw new exception();
require_once( $this->controller['path'] );
}
catch( exception $e )
{
print_r( error_get_last() );
}

此返回: ...(无效)...

示例 2:

try{

require_once( $this->controller['path'] ) OR throw new exception();;
}
catch( exception $e )
{
print_r( error_get_last() );
}

此返回:解析错误:语法错误,意外的 T_THROW in...

我故意在要包含的文件中创建语法错误。这个想法是捕获错误,以便您可以调试它们。

有人知道如何得到这个吗?

伙计们!我需要捕获语法错误。问候!

最佳答案

首先,如果你使用 require ,如果无法包含该文件,它总是会终止您的应用程序。无法控制结果,事后您无能为力。如果您想控制文件包含的成功,请使用 include并测试其返回值。

$success = include "foo.php";
if (!$success) {
// the file could not be included, oh noes!
}

你可以在句法上有所不同,比如:

if (!(include "foo.php")) ...

触发E_NOTICE如果无法包含该文件,则您无法捕获。但这没关系,因为它会帮助您调试问题,并且在生产环境中无论如何都会关闭错误显示(对,?)。

or throw new Exception不起作用,因为 throw是一个语句,不能用在需要表达式的地方。


如果您想捕获包含 文件中的语法错误,请使用 php_check_syntax /它的继任者php -l <file> .

关于php - 如何捕获函数 "include"PHP 的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com