5
if($_POST['user_admin'] = 0){ $acct_type = "a standard"; }
elseif($_POST['user_admin'] = 1){ $acct_type = "an administrator"; }
echo $acct_type;
echo $_POST['user_admin'];

不管$_POST['user_admin']是0还是1,$acct_type还是返回“管理员”为什么?

4

4 回答 4

10

比较变量时需要使用“==”。

if($_POST['user_admin'] == 0){ $acct_type = "a standard"; }
elseif($_POST['user_admin'] == 1){ $acct_type = "an administrator"; }
echo $acct_type;
echo $_POST['user_admin'];
于 2012-11-07T00:24:12.540 回答
6

它应该是

if $variable == 0
于 2012-11-07T00:22:46.163 回答
2

你用 = 赋值你应该使用 $variable == 0 来比较这个值

于 2012-11-07T00:46:44.300 回答
1

您是要避免的 10 个常见 PHP 错误中的第一个:-)

   $_POST['user_admin'] = 0 
   $_POST['user_admin'] = 1

都是任务。PHP 在将值分配给 $_POST['user_admin'] 后评估最终分配的表达式是真还是假。因此,第一个将评估为 false,因为分配的值为 0,第二个将评估为 true,因为分配的值为 1。

正如每个人都指出的那样,您必须使用“==”而不是“=”来表示条件语句。

于 2012-11-07T00:32:33.003 回答