【发布时间】:2021-05-31 12:23:28
【问题描述】:
这是一本书中介绍static变量的示例函数。
1 <?php
2 function test()
3 {
4 static $count = 0;
5 echo $count;
6 $count++;
7 }
8 ?>
现在如果我打电话给test 2 次,像这样:
1 <?php
2 function test()
3 {
4 static $count = 0;
5 echo $count;
6 $count++;
7 }
8
9 test();
10 test();
11
12 ?>
我希望输出是这样的:
0
1
相反,输出是:
└─$ php static.php
01
这是为什么?
【问题讨论】:
-
你没有打印换行符,所以
0和1是相邻打印的,再调用一次你的函数,你会看到012。 -
@AymDev 是有道理的。所以将
echo $count;更改为echo $count . "\n"或"<br>"就可以了 -
打印
<br>如果您在 Web 浏览器上进行测试,但我认为您正在从 CLI SAPI(命令行)执行代码,您可以使用PHP_EOL打印新行常量,它将处理操作系统的差异。