什么是 Javascript 未定义的 PHP 等价物?

Tri*_*daz 7 php null

我的假设之后是基于假设的问题:

Javascript 有nullundefined。您可以将变量设置为null,暗示它没有值,或者您可以将其设置为undefined,暗示它不知道它是否有值 - 它根本没有设置。

PHP 有null,到目前为止我使用的方式与我null在 Javascript 中使用的方式相同。PHP 有等价物undefined吗?

Eli*_*gem 7

不是真的,undefined在 PHP 中没有对应物。将 JSundefined与 PHP进行比较null并没有真正叠加,但它与您将要获得的一样接近。在两种语言中,您都可以分配这些值/非值:

var nothingness = undefined;
$nothing = null;
Run Code Online (Sandbox Code Playgroud)

并且,如果您声明了一个变量,但没有为其分配任何内容,那么 JS 似乎将 var 解析为undefined,而 PHP 解析(或分配)该变量null

var nothingness;
console.log(nothingness === undefined);//true

$foo;
echo is_null($foo) ? 'is null' : '?';//is null
Run Code Online (Sandbox Code Playgroud)

但是要小心isset

$foo = null;
//clearly, foo is set:
if (isset($foo))
{//will never echo
    echo 'foo is set';
}
Run Code Online (Sandbox Code Playgroud)

知道变量是否存在的唯一真正方法 AFAIK 是使用get_defined_vars

$foo;
$bar = null;
$defined = get_defined_vars();
if (array_key_exists($defined, 'foo'))
{
    echo '$foo was defined, and assigned: '.$foo;
}
Run Code Online (Sandbox Code Playgroud)