2011-11-12 23 views
0

このコードで何が問題なのですか?エディターで構文エラーが発生しました単純なPHPコードの構文エラー

$posts = if($row['plans'] == 1000) { 2 } elseif($row['plans'] == 1001){ 8 }else{ $row['posts'] } 

答えて

1

あなたが作る、この

$posts = $row['plans'] == 1000 ? 2 : ($row['plans'] == 1001 ? 8 : $row['posts']); 
+0

のようにそれを割り当てることができますそれは全く読めません。 –

+0

@ DanielA.Whiteそれは私の頭の中に突き出た最初の解決策ですが、あなたは正しいです。 – Nasreddine

+0

これは仕事と私のために働いた最初の答えです。他のすべての回答も同様に機能します。ありがとうございます – Pinkie

4

このように割り当てることはできません。あなたはこれのようにする必要があります。

if($row['plans'] == 1000) { 
    $posts = 2; 
} elseif($row['plans'] == 1001) { 
    $posts = 8; 
} else{ 
    $posts = $row['posts'] } 
2
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; 
} 

か、人々はすでにあなたを与えたコードのような三項演算子を使用することができます。

2

あなたは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; 
} 
2

あなたは1行の割り当てに意図している場合、それは次のように動作します。

$posts = ($row['plans'] == 1000 ? 2 : ($row['plans'] == 1001 ? 8 : $row['posts'])); 

<condition> ? <true> : <false>(三項演算)