我有一个下面的代码片段,请有超过仔细检查了一番:PHP中未分配的静态变量包含什么以及为什么它在浏览器输出窗口中打印空白区域?
<!DOCTYPE html>
<html>
<body>
<?php
function myTest() {
static $x;
echo $x;
$x++;
}
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
?>
</body>
</html>
注:包含上述代码的文件的名称是demo.php和它的位置在我的笔记本是C:\ XAMPP \ htdocs中\ php_playground \ demo.php
我收到当我运行上面的程序到我的浏览器通过点击URL http://localhost/php_playground/demo.php
的输出如下:
1
2
- 我的问题是,为什么在输出的第一行是空白只含有 空白?
- 为什么它不打印0或类似“NULL”或“Empty”这样的词?
- 实际上PHP中包含一个未分配的静态变量是什么?
- 静态未分配变量的默认值和未分配正常变量的默认值是否不同?
请给我适当的答案和适当的解释。
'static $ x;'将变量设置为'null',直到您明确将其设置为其他值。由于您将它作为整数使用,因此将其设置为默认值:'static $ x = 0;'“空格”不是该值,它是您的'
'。 –
@MagnusEriksson:如果是这样,那么为什么它没有在浏览器输出窗口中输出单词“null”? – user2839497
因为'null'不是一个字符串。定义的变量为空,但没有值(因为它不打印任何东西)。 [阅读文档中关于NULL的更多信息](http://php.net/manual/en/language.types.null。php) –