我需要一些关于 PHP 课程中设置的练习的指导。我尝试了很多不同的方法,但没有一个能够满足要求。任务是执行以下操作:
先决条件:
仅使用4行代码
<?php
、?>
标签各算作一行。 输出:打印以下文本200次
“只工作不玩耍让杰克成为一个迟钝的男孩。”
我假设它需要使用 while 循环,但我已经用尽了我的 PHP 知识,根本无法想出解决方案。我不一定只是为了指出正确的方向而寻找答案。
谢谢你。
不确定我是否得到它,但这是我的尝试......
function printsth ($count) {
echo $count++, "All work and no play makes jack a dull boy.<br>", $count <= 200 ? printsth($count++) : "";
}
printsth(1);
更干净的版本
function printsth ($count) {
echo "All work and no play makes jack a dull boy.<br>", $count++ < 200 ? printsth($count++) : "";
}
printsth(1);
给你:
$i = 0;
while ($i++ < 200){
echo("All work and no play makes jack a dull boy.");
}
这是我的解决方案,使用递归和匿名函数(只是为了好玩)。
$rec = function($iteration, $text) use (&$rec) {
return $iteration == 200 ? '' : $text .= $rec(++$iteration,"All work and no play makes jack a dull boy.\n");
};
echo $rec(1,'');
好吧,既然你可以使用数组,这使得它相对简单:
我建议仅浏览此页面并查看您可以使用哪些功能:https://secure.php.net/manual/en/ref.array.php
如果想法是使用递归函数,那么这个解决方案就达不到目的,也许老师会希望将来限制使用除 echo/print 之外的任何内置 php 函数。
如果
array_fill()
可以接受,则第一个解决方案:
<?php
echo implode( "<br/>\n", array_fill(0, 200, "All work and no play makes jack a dull boy.") );
如果您不能使用
array_fill()
并且似乎 <?php
被认为是四行要求之一,那么这是这个意大利面条:
<?php
a: (isset($i)?++$i:$i=0);
echo "<!-- $i --> All work and no play makes jack a dull boy.<br/>\n";
if ( $i < 199 ) goto a;
...如果第 2 行被禁止,那么我会这样说:
<?php
a:
echo "<!-- ".(isset($i)?++$i:$i=0)." --> All work and no play makes jack a dull boy.<br/>\n";
if ( $i < 199 ) goto a;