PHP में NULL और null के बीच अंतर


85

क्या PHP में NULLऔर बीच में कोई अंतर है null? कभी-कभी वे विनिमेय लगते हैं और कभी-कभी नहीं।

संपादित करें: किसी कारण से जब मैं उत्तर में (इस प्रश्न को पोस्ट करने से पहले) जुड़ा हुआ दस्तावेज पढ़ता हूं तो मैंने इसे "केस असंवेदनशील" के बजाय "केस सेंसिटिव" के रूप में पढ़ा, जो कि पूरे कारण से मैंने इस सवाल को पहली बार में पोस्ट किया था। ।


2
NULL=nullऔर इसके विपरीत जब तक कि DB में एक सटीक मिलान की पुष्टि नहीं होती है।
फंक फोर्टी निनेर

@FunkFortyNiner इस प्रश्न पर कोई DB शामिल नहीं है। प्रश्न प्रोग्रामिंग भाषा के बारे में है।
पाब्लो पाज़ोस

@PabloPazos 6 साल बीत जाने के बाद भी मुझे क्यों पिंग कर रहे हो? इसके अलावा, यदि आप मेरी टिप्पणी को फिर से पढ़ते हैं, तो आप संभावित प्रासंगिकता देखेंगे। कीवर्ड को "जब तक" देखें जो कि एक संभावित सत्य होगा।
फंक फोर्टी निनेर

1
@PabloPazos ने अपनी तरह की टिप्पणी करने के लिए थोड़ा हास्यास्पद भी कहा, जो उन्होंने कहा वह पूरी तरह से प्रासंगिक और सहायक है। अगर कोई और साथ आया और डीबी त्रुटि होने पर इसे देखा, तो यह तेजी से समाधान को ट्रैक करने में मदद करेगा, जो इसके प्रासंगिक नहीं हैं वे बस आगे बढ़ेंगे और दूसरे उत्तर को देखेंगे।
केन्ज़ी फ्लेवियस

1
@FunkFortyNiner आपकी टिप्पणी के लिए धन्यवाद, यह वही था जो मुझे सुनने के लिए आवश्यक था। मैं isset () का उपयोग करके एक डेटाबेस मान NULL को फ़िल्टर करने का प्रयास कर रहा था, जो आमतौर पर नियमित नल के लिए गलत होता है, लेकिन डेटाबेस मूल्य के साथ मुझे $ मूल्य === NULL का उपयोग करना पड़ता था। मुझे यह समझ में नहीं आया कि यह कैसे संभव है, लेकिन मैं इस समस्या को लेकर इस पृष्ठ पर आया हूं।
जेफ

जवाबों:


124

अशक्त स्थिति असंवेदनशील है।

से प्रलेखन :

प्रकार अशक्त का केवल एक मूल्य है, और यह है कि असंवेदनशील कीवर्ड NULL।


6
जब तक DB में एक सटीक मैच की पुष्टि नहीं की जाती है।
फंक फोर्टी निनेर

मैं nullडेटाबेस क्वेरी से प्राप्त मूल्य की तुलना कर रहा हूँ । क्या आप मदद कर सकते हैं?
रजिन आबिद

9

इसमें कोई फर्क नही है। एक ही प्रकार इसके मामले असंवेदनशील कीवर्ड। के रूप में ही True/ Falseआदि ...


-2

अच्छी तरह से एक तकनीकी अंतर है, बस वह नहीं जो आप सोच रहे हैं (सोचें: जहां यह शब्दकोश में दिखाई देता है): ऊपरी भाग के बाद निचले नल के लिए ASCII मूल्य प्रकट होता है। प्रयत्न:

$a = NULL;
$b = null;
if($a < $b){
   print 'first num appears earlier in the dictionary than second num';
}
else {
   print'the right num appears in the dictionary before the left num ';
}

** वास्तव में निचले मामले नल के लिए कोई ASCII मान नहीं है, जबकि ऊपरी मामला NULL है। लोअरकेस नल का मूल्यांकन एक स्ट्रिंग मान के रूप में किया जाएगा जो 0. से अधिक होगा। सभी ऊपरी और निचले मामले के बीच अंतर ASCII मान 32 है, सिवाय यहाँ जहां एक संपूर्ण स्ट्रिंग मान माना जाता है।


गलती से, यह एक बुलियनसेक ध्वज के रूप में उपयोग के लिए कैसे सहसंबंधी है? ASCII कभी नहीं है?
मार्टिन

1
ये गलत है। आपको कहना चाहिए elseif($b < $a) {... } else print 'the same';और फिर आप देखेंगे कि वास्तव में वे समान हैं। जैसा कि nUlL और NuLl हैं।
मैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.