我有这段代码,如果我从中删除if
语句,它就可以了:
<?php
for ($i = 1; $i < 32; $i++) {
echo "<option name = \"day\"" . if($day == $i){
echo " selected ";
} else {
echo "\" \"";) . "value=\"" . $i . "\">" . $i . "</option>";
}
?>
由于代码中间有;
部分,我确定出现了问题,但我不知道如何修复它。
答案 0 :(得分:1)
您不能将IF
语句用作字符串连接。您可以使用三元运算符。
试试这个。
<?php
for ($i = 1; $i < 32; $i++){
echo "<option name = \"day\"" . ($day == $i?"selected": ""). "value=\"" . $i . "\">" . $i . "</option>";
}
?>
答案 1 :(得分:0)
您不能在字符串连接中使用if
语句。而是使用三元if ?:
运算符。例如,您的代码变为:
<?php
for ($i = 1; $i < 32; $i++)
{
echo "<option name = \"day\""
. ($day == $i ? " selected " : "\"\"")
. "value=\"" . $i . "\">" . $i . "</option>";
}
?>
答案 2 :(得分:0)
尝试使用它:
<?php
for ($i = 1; $i < 32; $i++){
echo "<option name = \"day\"" . $day == $i ? echo " selected ": echo "\" \"";) . "value=\"" . $i . "\">" . $i . "</option>";
}
?>
答案 3 :(得分:0)
使用sprintf
让您的代码更加干净。
for ($i = 1; $i < 32; $i++){
echo sprintf('<option name="day" value="%s"%s>%s</option>', $i, $day == $i ? ' selected' : '', $i);
}