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

0$_POST['user_admin']でも 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']に割り当てた後、最後に割り当てられた式がtrueかfalseかを評価します。したがって、割り当てられた値が0であるため、最初の値はfalseと評価され、割り当てられた値が1であるため、2番目の値はtrueと評価されます。

誰もが指摘しているように、条件文には「=」ではなく「==」を使用する必要があります。

于 2012-11-07T00:32:33.003 に答える