Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更简洁的写作方式_Php - Fatal编程技术网

Php 更简洁的写作方式

Php 更简洁的写作方式,php,Php,用php编写以下代码最有效的方法是什么: <?php if($result === 1) { echo "<img src=\"1.png\" alt=\"1\" />"; } else if ($result === 2) { echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" />"; } else if ($result === 3) { ec

用php编写以下代码最有效的方法是什么:

<?php

if($result === 1) {
    echo "<img src=\"1.png\" alt=\"1\" />";
} else if ($result === 2) {
    echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" />";
} else if ($result === 3) {
    echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" />";
}  else if ($result === 4) {
    echo "<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" /><img src=\"4.png\" alt=\"4\" />";
}

?>


是否可以使用循环进行某些操作,以便所有图像都以正确的顺序显示?谢谢。

创建交换机结构:


等等。

使用
if-else
继续连接(添加)html字符串,而不是重复自己的操作。

类似的操作如何

$str = '';
for ($i = 1; $i <= $result; $i++) {
  $str.= "<img src=\"{$i}.png\" alt=\"{$i}\" />";
}
echo $str;  // if you want to print the resulting string.
$str='';
对于($i=1;$i
$template='';
$result=3;
$html=内爆(“”,数组映射(函数($d)使用($template){
返回sprintf($template,$d,$d);
}范围(1元,结果),;
变量转储($html);

我认为最有效的方法是:

echo substr("<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" /><img src=\"4.png\" alt=\"4\" />", 0, 27 * $result);
echo substr(“”,0,27*$result);

旁注:在字符串周围使用单引号,这样就不必转义双引号。此外,也可以使用单引号代替双引号\“这可能行得通,但您希望省去
break;
语句。这将迫使PHP在一次成功匹配后执行每条语句,产生所需的结果,即回显所有图像。在当前形式中,您将回显一个图像。您可能希望使用
array\u walk()
,而不是删除
内爆()
并将
sprintf()
更改为
printf()
:)@Paulo Freitas:一般来说,算法不应该产生任何输出。因此,我认为弊大于利如果这是一个返回某些内容的函数,我会同意你的意见…:P这都是关于选择的。
$template = '<img src="%d.png" alt="%d" />';

$result = 3;

$html = implode('', array_map(function($d) use($template) {
    return sprintf($template, $d, $d);
}, range(1, $result)));

var_dump($html);
echo substr("<img src=\"1.png\" alt=\"1\" /><img src=\"2.png\" alt=\"2\" /><img src=\"3.png\" alt=\"3\" /><img src=\"4.png\" alt=\"4\" />", 0, 27 * $result);