在 PHP 中,是否可以复制 isset() 抑制其参数中未定义变量的警告的方式?

问题描述 投票:0回答:1

使用 isset() 函数,您可以将未定义的变量传递给其参数,而不会收到警告。我想知道,是否可以以某种方式复制此功能?

例如,我尝试制作一个结合 isset($value) && is_array($value) 的函数。

但是,如果我尝试使用未定义的变量对其进行测试,则会收到“警告:未定义的变量 $somevar”警告。

function isset_array(mixed $value): bool
{
    if (isset($value) && is_array($value)) {
        return TRUE;
    } else {
        return FALSE;
    }
}

var_dump(isset_array($somevar));

我没有收到与 isset() 相同的警告。

var_dump(isset($somevar));

我认为这是 isset() 中的一些硬编码行为。

是否可以复制这种行为?或者这是一些你无法模仿的硬编码 PHP 功能?

php warnings isset error-reporting
1个回答
0
投票

您可以使用错误控制运算符@来抑制 PHP 表达式生成的错误消息。

function isset_array($value): bool
{
    return @isset($value) && is_array($value);
}

var_dump(isset_array($somevar));
© www.soinside.com 2019 - 2024. All rights reserved.