PHP:如何检查var是否已初始化?当var设置为NULL时,isset返回false

ada*_*Lev 2 php

<?php
    $var = NULL;

    var_dump(isset($var)); // bool(false)
    var_dump(isset($unset_var)); // bool(false)
?>
Run Code Online (Sandbox Code Playgroud)

isset($ var)应返回TRUE,因为它已设置为NULL.

有没有办法检查这个?

谢谢!

Mai*_*een 7

使用get_defined_vars()获取当前作用域中定义的变量数组,然后使用array_key_exists()进行测试;

编辑:

如果你想要一个测试存在的函数,你会创建一个如下:

function varDefined($name,$scope) {
  return array_key_exists($name, $scope);
}
Run Code Online (Sandbox Code Playgroud)

在任何给定的范围内使用如此:

$exists = varDefined('foo',get_defined_vars());
Run Code Online (Sandbox Code Playgroud)

应该适用于任何范围.