我试过了我能想到的每一种组合,但都不起作用。我如何在一个字符串内集成IF语句?
这是我需要集成的行;
if ($row['SL'] == 'Yes') {echo '<li class='"sl'">Short Sale</li>' ;}
这是我尝试过的;
elseif ($row['X'] == 'sold') { echo "
<li id='"price'"> $ {$row['SP$']}</li>
" .
{ if ($row['SL'] == 'Yes') {echo '<li class='"sl'">Short Sale</li>' ;} }
. "
<li>Days on Market: {$row['DOM']}</li>;
}
使用三元操作符
elseif ($row['X'] == 'sold') { echo "
<li id='"price'"> $ {$row['SP$']}</li>
" . ($row['SL'] == 'Yes') ? '<li class="sl">Short Sale</li>' : ''
. "
<li>Days on Market: {$row['DOM']}</li>";
}
你只需要把它分开:
elseif ($row['X'] == 'sold') {
echo "<li id='"price'"> $ {$row['SP$']}</li>";
if ($row['SL'] == 'Yes') {
echo '<li class='"sl'">Short Sale</li>';
}
echo "<li>Days on Market: {$row['DOM']}</li>;
}
你没有。输出字符串的前半部分,然后完全停止该语句,然后计算if
,然后输出字符串的其余部分。
...
elseif ($row['X'] == 'sold') {
echo "<li id='"price'"> $ {$row['SP$']}</li>";
if ($row['SL'] == 'Yes') {
echo '<li class='"sl'">Short Sale</li>'
}
echo "<li>Days on Market: {$row['DOM']}</li>";
}
你不能在字符串中"嵌入"if
语句,首先因为这在语法上是无效的,但即使它是,if
语句也不会解析为PHP中的值。
您正在寻找的是所谓的三元操作符或速记If/Else:
( condition ? true result : false result )
的例子:
echo "<li id='"price'">{$row['SP']}</li>" . ( $row['SL'] == 'Yes' ? '<li class="sl">Short Sale</li>' : '' ) . "<li>Days on Market: {$row['DOM']}</li>";
上面的例子与
相同echo "<li id='"price'">{$row['SP']}</li>";
if ( $row['SL'] == 'Yes' ) echo '<li class="sl">Short Sale</li>';
else echo '';
echo "<li>Days on Market: {$row['DOM']}</li>";
你可以"堆叠"三元表达式,这样完整的例子看起来像:
echo
$row['X'] == 'sold'
? "<li id='"price'">{$row['SP']}</li>" .
( $row['SL'] == 'Yes' ? '<li class="sl">Short Sale</li>' : '' ) .
"<li>Days on Market: {$row['DOM']}</li>"
: '';
important:没有else语句不能构建三元操作符