PHP - 两行代码多次打印字符串

时间:2015-11-05 03:35:57

标签: php loops web

我需要一些练习,我在PHP课程中设置了练习。我尝试了很多不同的方法,但都没有满足要求。任务是执行以下操作:

先决条件:

  1. 不使用循环的任何变体
  2. 没有字符串重复的任何变化
  3. 没有字符串连接功能
  4. 没有要求声明
  5. 仅使用4行代码

    • 值得注意的是,每个语句必须位于其自己的行上,<?php?>标记分别计为一行。
  6. 输出:打印以下文字200次

      

    “一切工作都没有让杰克成为一个沉闷的男孩。”

    我假设它需要使用while循环,但我已经用尽了PHP的知识,并且无法提出解决方案。我不一定只是为了指向正确的方向而寻找答案。

    谢谢。

4 个答案:

答案 0 :(得分:2)

不确定我是否得到了,但是我试着......

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);

答案 1 :(得分:1)

你走了:

$i = 0;
while ($i++ < 200){
    echo("All work and no play makes jack a dull boy.");
}

答案 2 :(得分: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被认为是四行要求之一,那么这就是这个spaghetto:

<?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;

答案 3 :(得分:1)

这是我的解决方案,使用递归和匿名函数(只是为了好玩)。

0