简单的PHP代码语法错误

时间:2011-11-12 19:20:04

标签: php

此代码有什么问题。它在编辑器中给出了语法错误

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

5 个答案:

答案 0 :(得分:4)

你不能这样分配。你必须这样做。

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

答案 1 :(得分: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 :(得分: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;
}

答案 3 :(得分:2)

如果您打算进行单行分配,它的工作原理如下:

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

<condition> ? <true> : <false>(三元操作)

答案 4 :(得分:1)

您可以像这样分配

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