आप या तो भाषा का निर्माण isset
, या फ़ंक्शन array_key_exists
का उपयोग कर सकते हैं।
isset
होना चाहिए थोड़ा तेजी से (यह एक समारोह नहीं है), लेकिन अवास्तविक लौटाते हैं, तो तत्व मौजूद है और मूल्य NULL
है।
उदाहरण के लिए , इस सरणी पर विचार:
$a = array(
123 => 'glop',
456 => null,
);
और उन तीन परीक्षणों, isset
पर निर्भर:
var_dump(isset($a[123]));
var_dump(isset($a[456]));
var_dump(isset($a[789]));
पहले एक आप मिल जाएगा (तत्व मौजूद है, और है शून्य नहीं):
boolean true
,210
दूसरा एक तुम (तत्व मौजूद है, लेकिन रिक्त है) मिल जाएगा जबकि:
boolean false
और तुम (तत्व मौजूद नहीं है) पिछले एक मिल जाएगा:
boolean false
दूसरी ओर, array_key_exists
इस तरह का उपयोग कर:
var_dump(array_key_exists(123, $a));
var_dump(array_key_exists(456, $a));
var_dump(array_key_exists(789, $a));
आप उन outputs मिल चाहते हैं:
boolean true
boolean true
boolean false
वजह से, दो प्रथम मामलों में, तत्व मौजूद है - भले ही वह दूसरे मामले में अशक्त है। और, ज़ाहिर है, तीसरे मामले में, यह अस्तित्व में नहीं है।
ऐसे तुम्हारा के रूप में स्थितियों के लिए, मैं आम तौर पर isset
उपयोग करते हैं, पर विचार मैं दूसरे मामले में कभी नहीं कर रहा हूँ ... लेकिन जो एक का उपयोग करने को चुनने के लिए अब आप ;-)
उदाहरण के लिए निर्भर है,
if (!isset(self::$instances[$instanceKey])) {
$instances[$instanceKey] = $theInstance;
}
मुझे शिकायत करना है कि 'कारण' जारी करना टाइप-असुरक्षित है। '$ Form = [1 => 5] कहा जाता है; var_dump (जारीकर्ता ($ 1 से $)); '' से '' '' '' '' '' 'से' '' __OTICE' द्वारा अधिसूचित नहीं किया गया है। धीमे, लेकिन सुरक्षित 'array_key_exists' मेरे लिए चीज करते हैं। – hejdav