2012-03-19 17 views
5

यह बहुत महत्वपूर्ण नहीं है लेकिन मैं अंतर जानने के लिए उत्सुक था।सही आउटपुट 1 लौट रहा है लेकिन झूठी आउटपुट को वापस नहीं कर रहा है

echo isA("A"); //outputs 1 

echo isA("B"); //outputs nothing. why doesn't it output 0? 

कोई भी इस मामले पर सोमवार को छोड़ सकता है? यह मुझे एक डबल मानक के रूप में प्रतीत होता है जब आप इसे इस दृष्टिकोण से देखते हैं कि "सत्य" आउटपुट "1" के रूप में होता है लेकिन "झूठा" आउटपुट "0" नहीं होता है।

फिर से, कोई बड़ा सौदा नहीं है, लेकिन मुझे लगता है कि PHP को इस तरह डिज़ाइन करने का एक कारण होना चाहिए। यह जानकर कि इस खूबसूरत भाषा में कुछ और जानकारी मिल सकती है।

एक वास्तविक मूल्य स्वयं को दृश्यमान 1 के रूप में प्रकट करेगा, लेकिन एक झूठा मान नहीं होगा। तो, मुझे बताओ कि इस विधि का क्या फायदा है?

उदाहरण फ़ंक्शन मैंने उपरोक्त संदर्भित किया है;

function isA($input){ 
    if ($input == "A"): 
     return true; 
    else: 
     return false; 
    endif; 
} 
+0

सुंदर भाषा? असहमत (लेकिन मैं PHP प्रोग्रामर भी हूं): पी –

+2

@ मुहम्मद अहमर: सौंदर्य के साथ इसका कोई लेना-देना नहीं है। लिंक के लिए – netcoder

उत्तर

11

बूलियन सही मूल्य स्ट्रिंग "1" में बदल जाती है के बजाय देखने के लिए। बूलियन फाल्स "(खाली स्ट्रिंग) में परिवर्तित हो गया है। यह बूलियन और स्ट्रिंग मानों के बीच रूपांतरण वापस और आगे की अनुमति देता है।

http://us3.php.net/manual/en/language.types.string.php#language.types.string.casting

क्या आप var_dump या print_r का उपयोग कर सकते डीबगिंग के लिए एक बूलियन प्रिंट करना चाहते हैं।

+0

+1। –

5

क्योंकि जब false स्ट्रिंग के लिए casted है यह '' हो जाता है - रिक्त स्ट्रिंग।

अंतर var_dump(); का उपयोग echo

var_dump((string) true); 
var_dump((string) false); 
संबंधित मुद्दे