2011-11-12 5 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; 
} 

하거나 코드 명 같은 삼항 연산자를 사용할 수 있습니다 이미했다.

당신은 if 상태 그 방법에서 변수에 값을 할당 할 수 없습니다
2

, 당신은 수행해야합니다

$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']; 
} 

대체 구문 구문 (switch 사용) :

switch($row['plans']) 
{ 
    case 1000: 
    $posts = 2; 
    break; 
    case 1001: 
    $posts = 8; 
    break; 
    default: 
    $posts = $row['posts']; 
    break; 
} 
당신이 한 줄 할당 의도 경우 10
2

, 그것은 다음과 같이 작동

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

<condition> ? <true> : <false> (삼항 작동)