2017-05-22 100 views
-2

我想使文本红色,如果用户名== user_id,但它给了我一个语法错误,意想不到的'if'(T_IF)。我的代码:PHP语法错误,意外'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>'; 
} 

任何人的任何想法?

回答

2

应该是这样的

echo '<li'; 

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

echo ' style="color:red"'; 

} 

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

为什么我可以知道downvote – JYoThI

+1

在样式属性之前,您仍然缺少一个空格。 – Hienz

+0

tanqq点@Hienz – JYoThI

-1

忘记了分号。

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

这将仍然会给你一个语法错误,如果在这种情况下是不允许的(在回答编辑之前发表评论) –

+0

为什么它不被允许?我想它应该工作。 – Hienz

+0

在编辑之前查看答案 –

-1

您可以使用短,如果语法,长语法在此方面不接受:

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

没有*“short如果语法”*这样的事情。 ['if'](http://php.net/manual/en/control-structures.if.php)是一个控制流语句,['?:'](http://php.net/manual/ en/language.operators.comparison.php#language.operators.comparison.ternary)是一个运营商。他们是完全不同的东西。语句做了一些事情(控制流语句根据条件决定采取哪种代码分支),操作符将两个子表达式连接成一个更大的表达式。表达式有一个值(可以计算)。 – axiac

0

不能使用如果之间的字符串

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 
} 
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()代替。

相关问题