如何在字符串内编写IF语句


How do I code an IF statment within a string?

我试过了我能想到的每一种组合,但都不起作用。我如何在一个字符串内集成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语句不能构建三元操作符