このコードで何が問題なのですか?エディターで構文エラーが発生しました単純な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;
}
あなたは1行の割り当てに意図している場合、それは次のように動作します。
$posts = ($row['plans'] == 1000 ? 2 : ($row['plans'] == 1001 ? 8 : $row['posts']));
<condition> ? <true> : <false>
(三項演算)
のようにそれを割り当てることができますそれは全く読めません。 –
@ DanielA.Whiteそれは私の頭の中に突き出た最初の解決策ですが、あなたは正しいです。 – Nasreddine
これは仕事と私のために働いた最初の答えです。他のすべての回答も同様に機能します。ありがとうございます – Pinkie