我試圖將下面的if語句插入到類中,但得到意外的T_IF錯誤;插入if語句到html中的css類
class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' "
這是不可能的,或者我做錯了嗎?
我試圖將下面的if語句插入到類中,但得到意外的T_IF錯誤;插入if語句到html中的css類
class="color_icon_filter '. if ($link_data['id']==$link_data['text']) {$active} .' "
這是不可能的,或者我做錯了嗎?
將if
語句連接到字符串是不可能的。
你可以這樣做,而不是:
$string = "123";
if ($bar) {
$string .= "456";
}
$string .= "789";
或本:
if ($bar) {
$baz = "456";
} else {
$baz = "";
}
$string = "123" . $baz . "789";
你也可以使用a ternary operator,但你如果條件是(相對)長,所以它的風險使你的代碼看起來更像是線路噪聲。
你應該打開PHP標籤來解釋服務器端。
class="color_icon_filter <?php if ($link_data['id']==$link_data['text']) {echo $active} ?>"
編輯
或者,如果你在PHP標籤是已經
echo 'class="color_icon_filter '.($link_data['id']==$link_data['text'] ? $active : '').'"';
你試圖在if語句Concat的。
我假設在該行前有一個回聲。您可以將其轉換爲sprintf(http://php.net/sprintf)或將if放在回波行之前,設置$ active的值,然後將其轉換爲變量。
就我個人而言,我認爲sprintf/printf是您更好的解決方案。
有點代碼在這裏有很長的路要走。 –
不能if語句中的賦值操作中使用,但有辦法來實現你想要的結果:
$active = '';
if ($link_data['id']==$link_data['text']) {
$active = 'active';
}
$class = "color_icon_filter $active";
或通過三元操作更短的方式:
$active = ($link_data['id']==$link_data['text']) ? 'active' : '';
$class = "color_icon_filter $active";
+1很好解釋。 – NullPointer
這個問題說他們正在收到意想不到的T_IF錯誤。這意味着問題中的代碼以字符串開頭。除了更改已經共享的內容外,您還需要對代碼進行其他修改。 – Quentin
是的!你是對的 – Pouki
另一種方法是使用terinary如果格式...'($ link_data ['id'] == $ link_data ['text']?$ active:「in-active」)' – Orangepill