PHP语法错误,意外'如果'(T_IF)

时间:2017-05-22 09:19:48

标签: php

如果username == user_id,我想将文本设为红色,但它会给我一个语法错误,意外的'if'(T_IF)。我的代码:

foreach ($dag as $taak) {
    echo '<li' if($_SESSION['user_id'] == $taak['username']){ echo 'style="color:red"';}'>'.$taak['taak_naam'].' - '.$taak['username'].'</li>';
}
任何人都知道吗?

5 个答案:

答案 0 :(得分:2)

它应该是这样的

echo '<li';

if($_SESSION['user_id'] == $taak['username']){ 

echo ' style="color:red"';

}

echo '>'.$taak['taak_naam'] . ' - '  .$taak['username'] . '</li>';

答案 1 :(得分:1)

不要将决策(if ...)与输出混在一起。在回声之前做好准备:

foreach ($dag as $taak) {
    // Don't add color by default
    $style = '';
    // Special color for special entries
    if ($_SESSION['user_id'] == $taak['username']) {
        $style = ' style="color: red;"';
    }

    // Make sure HTML special characters in $taak['username'] do not break the HTML
    $username  = htmlspecialchars($taak['username']);

    // Display
    echo("<li{$style}>{$taak['taak_naam']} - {$username}</li>");
}

在其中包含string in double quotes ("),PHP recognizes variable names并用它们的值替换它们。

curly braces ({ and }) around the array values告诉PHP变量是$taak['taak_naam'],否则它只找到$taak并输出Array['taak_naam'](这不是我们想要的)。

如果用于创建HTML内容的值可能包含HTML中特殊的字符,则必须使用正确的HTML定义对这些字符进行编码。 PHP函数htmlspecialchars()知道如何做到这一点。

它对<>&"进行了编码(如果未正确编码,则为HTML断路器)。如果您需要将HTML中定义的所有符号编码为“字符实体”,则可以使用PHP函数htmlentities()

答案 2 :(得分:0)

你不能在字符串

之间使用 if
foreach ($dag as $taak) {
        $style='';
        if($_SESSION['user_id'] == $taak['username'])
          $style='style="color:red"';
        echo "<li {$style}> {$taak['taak_naam']} - {$taak['username']}</li>";
    }

                 ****OR****


 foreach ($dag as $taak) { ?>
   <li <?php if($_SESSION['user_id'] == $taak['username'])
      echo 'style="color:red"'; ?> >
      <?= $taak['taak_naam'].' - '.$taak['username']; ?>
   </li>';
  <?php
 }

答案 3 :(得分:-1)

忘了分号。

{{1}}

答案 4 :(得分:-1)

您可以使用short if语法,在此上下文中不允许使用长语法:

    foreach ($dag as $taak) {
        echo '<li' . (($_SESSION['user_id'] == $taak['username']) ? ' style="color:red"' : '') . '>' .$taak['taak_naam'] . ' - ' . $taak['username'].'</li>';
    }