我需要在echo语句中使用像switch这样的语句
我找到了一种方法,但我认为这不是最好的方法 当我们想在echo里面使用IF时,写一些像:
echo ((condition)?'print this if condition is True':'print this if condition is False');
我们可以将这种方法用于像switch这样的方式:
echo ((case1)?'case 1 result':((case2)?'case2 result':((case3)?'case3 result':'default result')));
你知道更好的方法吗?
答案 0 :(得分:0)
你的例子被称为三元运算符,它基本上是if语句的简写。
所以在你的第二个例子中,你只是做了一个链接加载,如果那么其他的
你做这样的事情会好得多吗
switch ($type)) {
case "txt":
$output = "images/doctypes/icon_txt.gif";
break;
case "doc":
$output = "images/doctypes/icon_doc.gif";
break;
case "docx":
$output = "images/doctypes/icon_doc.gif";
break;
case "pdf":
$output = "images/doctypes/icon_pdf.gif";
break;
case "xls":
$output = "images/doctypes/icon_xls.gif";
break;
case "xlsx":
$output = "images/doctypes/icon_xls.gif";
break;
case "ppt":
$output = "images/doctypes/icon_ppt.gif";
break;
case "pptx":
$output = "images/doctypes/icon_txt.gif";
break;
case "rtf":
$output = "images/doctypes/icon_txt.gif";
break;
case "zip":
$output = "images/doctypes/icon_zip.gif";
break;
case "rar":
$output = "images/doctypes/icon_zip.gif";
break;
case "mdb":
$output = "images/doctypes/mdb.gif";
break;
default:
$output = "images/doctypes/icon_generic.gif";
};
echo $output;
答案 1 :(得分:0)
嗯。如果我理解正确,你想知道第一个成功的条件最简洁的条件吗?
我只是想到了......看看它是否适合你。
只需将false / true替换为您的条件。
$i = 0;
++$i AND false OR // 1
++$i AND false OR // 2
++$i AND false OR // 3
++$i AND true OR // 4 (here we go)
++$i AND false OR // 5
++$i AND true OR // 6 (ignored)
++$i AND false OR // 7
$i = 0; // 0
echo "case" . $i . " result"; // echoes 'case4 result'
修改强>
这是采用相同技术的另一种方法
但是,除了一个计数器,你可以给自己的成功字符串
记得只用你的条件替换false / true。
function dostuff($str) { echo $str; return true;}
false AND dostuff('string1') OR
false AND dostuff('string2') OR
false AND dostuff('string3') OR
true AND dostuff('string4') OR // echoes 'string4'
false AND dostuff('string5') OR
true AND dostuff('string6') OR // ignored
false AND dostuff('string7');