gpt4 book ai didi

php - 为什么这个error_handler函数返回NULL?

转载 作者:行者123 更新时间:2023-12-03 08:46:30 25 4
gpt4 key购买 nike

我有一个名为Error的类,该类在加载时将使用PHP中的errorHandler方法注册一个名为set_error_handler的函数。但是,如果函数无法加载或PHP使用默认的内置错误处理程序,则此函数将返回NULL。我无法弄清楚为什么我的功能没有被接受。有人有什么好猜测吗?

<?php
declare (strict_types = 1);

namespace Request\Configuration;

use Errors\Exception\FatalException;

class Error extends Template
{
public static function load(): void
{
$result = set_error_handler('self::errorHandler', error_reporting());
var_dump($result);
}

public static function errorHandler(
int $number,
string $message,
string $file = null,
int $line = null,
array $context = null
) {
throw new FatalException('PHP_ERROR: ' . $message, 0);
}
}

加载时此类返回 NULL

最佳答案

好的,经过大量调试和探索,我找到了造成这种情况的原因。 set_error_handler()函数将仅在注册新函数之前返回当前的错误处理函数。这是一个奇怪的功能。因此,如果要确定注册是否成功,则必须调用此函数两次。因此,当此函数返回NULL时,是因为先前注册的函数是PHP的内置函数,因此它只返回了NULL。注意这一点,这是一个奇怪的功能。

关于php - 为什么这个error_handler函数返回NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813837/

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