2012-11-07 20 views
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 veya 1 olsun

çalışmıyor ise $acct_type hala "bir yönetici" Neden döndürür?

+10

= 'ile' == '.... ayrıca http://www.php.net bakmak' Değiştir değerini karşılaştırmak için $ değişken == 0 kullanmalıdır /manual/en/language.operators.comparison.php – Baba

+0

[3 farklı eşittir] olası kopyası (http://stackoverflow.com/questions/2063480/the-3-different-equals) – mario

+0

Teşekkürler! Bazen 10 dakikalığına baktıktan sonra bir şeyi özlüyorsun ... – GiantDuck

cevap

10

olmalıdır.

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

It değişkenleri karşılaştırırken "==" kullanmak gerekir

if $variable == 0 
2

Sen

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

:-) 10 common PHP mistakes to avoid ilk günü hem atamaları bulunmaktadır. PHP, son atanan ifadenin, $ _POST ['user_admin'] değerine atandıktan sonra true veya false olup olmadığını değerlendirir. Yani, ilk atanan değer 0 olduğundan ve ikincisi atanan değer 1'den beri true olarak değerlendirecektir.

Herkesin işaret ettiği gibi, "==" yerine koşullu ifadeler için "=".