這段代碼有什麼問題。它在編輯器中給我語法錯誤簡單的php代碼語法錯誤
$posts = if($row['plans'] == 1000) { 2 } elseif($row['plans'] == 1001){ 8 }else{ $row['posts'] }
這段代碼有什麼問題。它在編輯器中給我語法錯誤簡單的php代碼語法錯誤
$posts = if($row['plans'] == 1000) { 2 } elseif($row['plans'] == 1001){ 8 }else{ $row['posts'] }
您可以將它像這樣
$posts = $row['plans'] == 1000 ? 2 : ($row['plans'] == 1001 ? 8 : $row['posts']);
你不能這樣分配。你必須這樣做。
if($row['plans'] == 1000) {
$posts = 2;
} elseif($row['plans'] == 1001) {
$posts = 8;
} else{
$posts = $row['posts'] }
if($row['plans'] == 1000) { $posts = 2; } elseif($row['plans'] == 1001){ $posts = 8; }else{ $posts = $row['posts']; }
或使用開關/箱:
switch($row['plans']){
case 1000:
$posts = 2;
break;
case 1001:
$posts = 8;
break;
default:
$posts = $row['posts'];
break;
}
,或者您可以使用三元運算符,如代碼的人已經給了你。
您不能分配值從if
條件這樣一個變量,你應該做的:
if($row['plans'] == 1000) {
$posts = 2;
}
elseif($row['plans'] == 1001){
$posts = 8;
}
else{
$posts = $row['posts'];
}
替代語法(使用三元運營商?
):
$posts = ($row['plans'] == 1000) ? 2 : ($row['plans'] == 1001) ? 8 : $row['posts'];
比較另類語法(使用switch
):
switch($row['plans'])
{
case 1000:
$posts = 2;
break;
case 1001:
$posts = 8;
break;
default:
$posts = $row['posts'];
break;
}
如果你在一個單行分配意圖,它的工作原理是這樣的:
$posts = ($row['plans'] == 1000 ? 2 : ($row['plans'] == 1001 ? 8 : $row['posts']));
<condition> ? <true> : <false>
(三元操作)
,使它相當難以理解。 –
@ DanielA.White這是我頭上第一個解決方案,但你是對的。 – Nasreddine
這是做這個工作和我的第一個答案。所有其他答案也適用。謝謝大家 – Pinkie