2017-05-22 126 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()代替。

相關問題