小编Inf*_*ode的帖子

为什么解释器显示未定义为NULL?

上次我正在探索PHP,我很好奇是否有可能定义变量而不像C++那样初始化它.

如果我将运行此代码,那么解释器不会输出致命的错误(只有通知变量测试未定义):

<?php 

$test = (int) $test;

?>
Run Code Online (Sandbox Code Playgroud)

如果我尝试用var_dump()函数检查它,我得到:

int(0)
Run Code Online (Sandbox Code Playgroud)

我假设解释器自动将undefined转换为整数.嗯,好吧,这很聪明.但当我删除代码类型转换代码并使用var_dump()函数检查它时,我得到:

NULL
Run Code Online (Sandbox Code Playgroud)

好吧,好的.因此,当我将未定义的变量指定为未定义的变量时,我得到NULL变量.我可以理解翻译在运行中为我做的.但是,当我尝试这样的事情时:

<?php

var_dump($test);
var_dump($test);

?>
Run Code Online (Sandbox Code Playgroud)

我得到两个通知,测试没有定义,但var_dump()返回NULL,而不是未定义.现在我不明白.如果我将关闭通知,var_dump()函数将与未定义的变量和分配给NULL的变量具有相同的结果.这是一个来自主题的问题.为什么解释器(或者更确切地说是var_dump()函数)将undefined和NULL视为相同?

php interpreter var-dump

1
推荐指数
1
解决办法
216
查看次数

标签 统计

interpreter ×1

php ×1

var-dump ×1