【发布时间】:2018-01-04 05:29:43
【问题描述】:
我有以下代码sn-p,请仔细看一下:
<!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;“空白空间”不是值,而是您的<br />。 -
@MagnusEriksson :如果是这样,那为什么它没有在浏览器输出窗口中打印“null”这个词?
-
因为
null不是字符串。一个变量在定义时为空,但没有任何值(因此它不会打印任何内容)。 Read more about NULL in the documentation -
@MagnusEriksson:据我所知,字符串是一组字符,而单词“null”是由字符(即字母)'n'、'u'、'l 组合而成的组' 和我'。那么为什么字符串“null”没有在浏览器输出窗口中打印出来呢?
-
null是 数据类型 而不是字符串。这是null不是'null'。最后的评论要么是纯粹的拖钓,要么你真的需要阅读我发布的链接,然后再继续。
标签: php variables static default-value static-variables