Php 更简洁的写作方式
用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
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);