如果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>';
}
任何人都知道吗?
答案 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)
你不能在字符串
之间使用 ifforeach ($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>';
}