我有一個下面的代碼片段,請有超過仔細檢查了一番: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) –