上次我几乎在探索 PHP,我很好奇是否可以定义变量而不像在 C++ 中那样初始化它。
如果我将运行此代码,那么解释器不会输出致命错误(仅通知变量 test 未定义):
<?php
$test = (int) $test;
?>
如果我尝试使用 var_dump() 函数检查它,我会得到:
int(0)
我假设解释器自动将 undefined 转换为整数。好吧,这很聪明。但是,当我删除可用于类型转换的代码并使用 var_dump() 函数检查它时,我得到:
NULL
好吧,好吧。因此,当我将未定义的变量分配为未定义的变量时,我得到的变量为 NULL。我可以理解解释器在运行中为我做这件事。但是当我尝试这样的事情时:
<?php
var_dump($test);
var_dump($test);
?>
我收到两个未定义测试的通知,但 var_dump() 返回 NULL,而不是未定义。现在我不明白。如果我关闭通知,var_dump() 函数将具有与未定义变量和分配给 NULL 的变量相同的结果。这里有一个来自主题的问题。为什么解释器(或者更确切地说是 var_dump() 函数)将 undefined 和 NULL 视为相同?