如何在字符串中编写IF语句?

时间:2014-07-04 18:42:36

标签: php string if-statement

我已经尝试过我能想到的每一种组合,但没有任何效果。如何在字符串中集成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>;
 }

4 个答案:

答案 0 :(得分:3)

使用三元运算符:

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>";
 }

答案 1 :(得分:2)

你只需要分解它:

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>;
 }

答案 2 :(得分:0)

你没有。输出字符串的前半部分,然后完全停止该语句,然后计算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中的值。

答案 3 :(得分:0)

您要找的是Ternary Operator或速记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>";

你可以&#34;堆叠&#34;三元表达式,所以完整的例子将如下所示:

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>" 
        : '';

重要:如果没有其他声明,则无法构建三元运算符。