为什么变量的 'NULL' 值不是用 echo 和 print 显示,而是用 var_dump() 函数显示?
Why the 'NULL' value of a variable is not displayed using echo and print but displayed with var_dump() function?
众所周知,如果创建一个没有值的变量,它会被自动赋值为NULL。
我有以下代码片段:
<?php
$name;
echo $name;
?>
AND
<?php
$name;
print $name;
?>
以上两个代码片段的输出如下(完全一样):
Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 7
我还有另一个代码片段:
<?php
$name;
var_dump($name);
?>
上面(最后)代码片段的输出如下:
Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 8
NULL
所以,我的问题是为什么当我尝试使用 echo 和 print 显示值 "NULL" 时没有显示它?
但是,当我尝试使用 var_dump() 函数显示它时,显示了 "NULL" 值。
为什么会这样?
这种行为背后的原因是什么?
谢谢。
您遇到的问题是 NULL 不是 任何东西 - 它是缺少值。
当您尝试 echo
或 print
时,您会收到有关未定义变量的通知,因为 $name
的值未设置为任何值,您不能echo
缺少某物。
$name;
var_dump($name);
它的输出将是 NULL
,告诉您该变量没有值。它不是一个值为"NULL"的字符串,它只是NULL,什么都没有,缺少一些东西。
将此与以下内容进行比较:
$name = '';
var_dump($name);
这输出 string(0)""
- 这告诉你 $name
DID 有一个值,它是一个 string 不包含字符 ("")总长度 0.
最后看下面:
$name = 'test';
var_dump($name);
这会输出 string(4)"test"
- 包含 test 的 string,其长度为 4
众所周知,如果创建一个没有值的变量,它会被自动赋值为NULL。
我有以下代码片段:
<?php
$name;
echo $name;
?>
AND
<?php
$name;
print $name;
?>
以上两个代码片段的输出如下(完全一样):
Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 7
我还有另一个代码片段:
<?php
$name;
var_dump($name);
?>
上面(最后)代码片段的输出如下:
Notice: Undefined variable: name in C:\xampp\htdocs\php_playground\demo.php on line 8
NULL
所以,我的问题是为什么当我尝试使用 echo 和 print 显示值 "NULL" 时没有显示它?
但是,当我尝试使用 var_dump() 函数显示它时,显示了 "NULL" 值。
为什么会这样?
这种行为背后的原因是什么?
谢谢。
您遇到的问题是 NULL 不是 任何东西 - 它是缺少值。
当您尝试 echo
或 print
时,您会收到有关未定义变量的通知,因为 $name
的值未设置为任何值,您不能echo
缺少某物。
$name;
var_dump($name);
它的输出将是 NULL
,告诉您该变量没有值。它不是一个值为"NULL"的字符串,它只是NULL,什么都没有,缺少一些东西。
将此与以下内容进行比较:
$name = '';
var_dump($name);
这输出 string(0)""
- 这告诉你 $name
DID 有一个值,它是一个 string 不包含字符 ("")总长度 0.
最后看下面:
$name = 'test';
var_dump($name);
这会输出 string(4)"test"
- 包含 test 的 string,其长度为 4