मैं त्रुटि को फेंकने से बचने के लिए, किसी सरणी में कोई कुंजी मौजूद है या नहीं, मैं तुरंत पहचानना चाहता हूं।एक गहरी सरणी मान मौजूद है या नहीं, यह जांचने के लिए कि
उदाहरण के लिए, मैं सभी को एक $ आगमन [ 'एफ'] [ 'बी'] में किसी भी चर नहीं हो सकता इस
$arr['f']['b']['g'] = array('a', 'b', 'c',) ;
या सरणी की तरह एक सरणी हो सकता है:
$arr['f']['x'] = array() ;
$ arr ['f'] ['b'] ['g'] की (शायद) सामग्री को संदर्भित करते समय मैं परीक्षण में पुनरावृत्ति से कैसे बच सकता हूं?
if (isset($arr['f']) &&
isset($arr['f']['b']) &&
isset($arr['f']['b']['g']) /* ... yawn */) {
/* blah */
}
यह पहचानने के लिए एक छोटा रास्ता होना चाहिए कि एक निर्दिष्ट सरणी मान मैं संदर्भित कर रहा हूं या नहीं? ऐसा लगता है कि मैं जिस मूल्य की तलाश करता हूं, और उसके सभी पूर्वजों की उपस्थिति के लिए परीक्षण करना भी बहुत ही वर्बोज़ लगता है। कुछ परिस्थितियों में जो समझ में आता है, हाँ, लेकिन सभी नहीं।
उदाहरण द्वारा: यह, का प्रतिनिधित्व कर सकते कहना, उपयोगकर्ता> सत्र-> गाड़ी है, जहां मैं एक तरह से जल्दी से जाँच करने के लिए है कि क्या गाड़ी प्रविष्टियां हैं चाहते हैं, के लिए प्रत्येक एक जांच शामिल करने की आवश्यकता है कि क्या उपयोगकर्ता मौजूद है, तो चाहे सत्र मौजूद है, तो चाहे गाड़ी मौजूद है, फिर ...
संपादित करें: "मौजूद 'जी' की एक प्रमुख नाम के साथ एक सरणी मूल्य करता है" मैं के लिए नहीं देख रहा हूँ, जैसा कि "f => b => g के पूर्वजों के साथ एक सरणी मान मौजूद है"।
हू! अच्छी तरह से देखा गया :) –
बस स्पष्ट करने के लिए, यह सुरक्षित रूप से '$ a' के अस्तित्व का परीक्षण करता है: यदि' $ a' सेट नहीं है तो यह झूठा हो जाता है। –
वाह, साल के लिए यकीन था कि यह काम नहीं करता है। जबरदस्त हंसी। – baldrs