gpt4 book ai didi

php - register_shutdown_function 没有被调用

转载 作者:行者123 更新时间:2023-12-04 12:07:27 26 4
gpt4 key购买 nike

这是我正在测试以处理错误的原始代码的片段。

第一种方法是拨打 fatalErrorHandler() ,但第二种方法不是调用 fatalErrorHandler() .可能是什么原因?

第一

<?php 
//error_reporting(0);

function fatalErrorHandler() {
echo 'YAY IT WORKED';
}

# Registering shutdown function
register_shutdown_function('fatalErrorHandler');

// let force a Fatal error -- function does not exist
functiontest();

echo "hello";

?>

output:

Fatal error: Call to undefined function functiontest() in ...test2.php on line 12 YAY IT WORKED



第二
 <?php 
//error_reporting(0);

function fatalErrorHandler() {
echo 'YAY IT WORKED';
}

# Registering shutdown function
register_shutdown_function('fatalErrorHandler');

// let force a Fatal error -- function does not exist
functiontest();

function foo () {

}

function foo() {

}

echo "hello";

?>

输出:

Fatal error: Cannot redeclare foo() (previously declared in ...test/test2.php:16) in ../test2.php on line 20



在这种情况下不会调用 fatal error 处理程序。为什么?

最佳答案

在 PHP 中,您可以在定义函数之前使用它。我认为这意味着解释器必须在开始执行之前解析所有函数。所以register_shutdown_function检测到此错误时尚未调用。

您可以通过将重复的函数定义移动到一个单独的文件中并将其包含在 include 中来测试这一点。或 require .

关于php - register_shutdown_function 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30708952/

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