上次我正在探索PHP,我很好奇是否有可能定义变量而不像C++那样初始化它.
如果我将运行此代码,那么解释器不会输出致命的错误(只有通知变量测试未定义):
<?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视为相同?