在这种情况下,使用循环是否更好?
echo "0";
echo "1";
echo "2";
echo "3";
echo "4";
echo "5";
echo "6";
echo "7";
echo "8";
echo "9";
echo "10";
echo "11";
echo "12";
echo "13";
或
$number = 0;
while ($number != 13)
{
echo $number;
$number = $number + 1;
}
答案 0 :(得分:5)
前者可能更快小。后者是很多更具可读性。选择是你的;)
答案 1 :(得分:5)
更好的是
$totalWhatevers = 14;
for ($number = 0; $number < $totalWhatevers ; $number++)
{
echo $number;
}
其中'totalWhatevers'是描述性的,告诉我们你实际在计算什么。
答案 2 :(得分:4)
使用循环更清楚;根据经验,如果使用较少的代码行进行循环,请执行此操作。
你的循环可以写得更简洁:
foreach (range(0,13) as $n)
echo $n, "\n";
答案 3 :(得分:2)
我会使用for循环,只是为了让所有内容保持开放状态(原始循环似乎只能打印12个):
for ($number = 0; $number <= 13; $number++)
{
echo $number;
}
比写出一百万个“回声”要清晰得多,而且代码是相当自我解释的。
答案 4 :(得分:1)
$string = "<?php \n";
$repeatNum = 20;
for($i = 0; $i < $repeatNum; $i++)
{
$string .= "echo \"" . $number . "\"; \n";
}
$string = "?>";
现在你可以
eval($string);
或
file_put_contents("newfile.text", $string);
你会得到一个包含所有回声的文件!
注意:这不是一个“严肃”的答案。如果你真的想要创建一个包含许多回声的PHP文件,它可以工作,但是在最后评估语句可能不是常规编程实践的最佳选择。
答案 5 :(得分:0)
根据您的尝试,循环可以帮助您更清晰,更简单地更新代码。
例如,当显示的数量可能不同时,您可以使用配置变量。
$repeat = 20;
for ($i = 0; $ < $repeat; ++$i) {
echo $i;
}
答案 6 :(得分:0)
错误在于认为循环生成代码。事实并非如此。
echo "0";
echo "1";
echo "2";
echo "3";
PHP将逐一执行这些语句。
for ($i = 0; $i <= 3; ++$i) {
echo $i;
}
在这种情况下,PHP执行相同的 echo语句四次。每次到达块的末尾(一个块是花括号之间的代码),执行跳转回条件。如果条件仍然为真,则块再次执行。
哪种方法提供最佳性能?这很难说。
方法1的减速)回显的数字范围越大,必须在脚本中解析的回声语句就越多。
方法2的减速)回显的数字范围越大,执行跳转的次数越多,条件必须测试的次数越多,计数器必须递增的次数就越多。
我不知道哪种情况会导致更多CPU指令,或导致更多内存使用。但作为之前编程的人,我知道一个秘密:无所谓。执行的差异可能会在一秒钟内的几百万分之一
。因此,使效果变得明显的唯一方法就是回显千万个数字,在这种情况下,一个方法可能比另一个方法多一秒。这不是一个值得的收获吗?没有!当我们回应一千万个数字时,我们将花费分钟来处理任何一种方法。只有它们之间的差异会相差一秒,这完全可以忽略不计。更不用说,无论如何谁知道哪一个更好?
作为程序员,您可以做的最好的事情是使您的代码可读和可维护。循环比一页回声线更容易理解。通过一个循环,我知道你没有错过任何中间数字,但有了回声我必须检查每一行。
技术术语版本:两种算法都具有复杂度O(n)。它们的性能只能存在恒定的差异,如果这个常数不是特别大,那么它可以忽略不计。
答案 7 :(得分:0)
你的意思是什么?更好的解析器?更好的电脑?执行时间更快?我可以告诉你,对于使用你的代码和系统的人来说,循环总是更好。