2012-11-07 13 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 या 1 है या नहीं काम नहीं कर रहा है, तो $acct_type अभी भी "एक व्यवस्थापक" क्यों देता है?

+10

बदलें '=' 'साथ ==' .... भी http://www.php.net को देखने की तुलना करने के /manual/en/language.operators.comparison.php – Baba

+0

[3 अलग-अलग बराबर] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/2063480/the-3- अलग-अलग) – mario

+0

धन्यवाद! कभी-कभी आप 10 मिनट के लिए उस पर घूरने के बाद कुछ याद करते हैं ... – GiantDuck

उत्तर

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

आप 10 common PHP mistakes to avoid की पहली पर हैं :-)

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

दोनों कार्य कर रहे हैं। PHP मूल्यांकन करता है कि अंतिम असाइन किया गया अभिव्यक्ति $ _POST ['user_admin'] को मान निर्दिष्ट करने के बाद सत्य या गलत है या नहीं। इसलिए, पहला व्यक्ति गलत मान का मूल्यांकन करेगा क्योंकि आवंटित मान 0 है, और दूसरा एक वास्तविक मान का मूल्यांकन करेगा क्योंकि निर्दिष्ट मूल्य 1 है।

जैसा कि सभी ने इंगित किया है, आपको "==" का उपयोग करना होगा सशर्त बयान के लिए "="।

2

आप के साथ मान निर्दिष्ट कर रहे हैं = आप $ चर == 0 का उपयोग करना चाहिए मूल्य

संबंधित मुद्दे