使用 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 表达式生成的错误消息。
function isset_array($value): bool
{
return @isset($value) && is_array($value);
}
var_dump(isset_array($somevar));