PHP में ऐरे खाली है या नहीं कैसे जाँचें? उदाहरणों के साथ पूर्ण मार्गदर्शिका
\n\nनमस्ते, साथी डेवलपर! यदि आपने कभी PHP में कोड लिखा है, तो आपने निश्चित रूप से ऐसी स्थिति का सामना किया होगा जहाँ आपको यह समझने की आवश्यकता होती है: क्या ऐरे में कुछ भी है, या यह परीक्षा के बाद छात्र की जेब की तरह खाली है। यह कार्य सरल लगता है, लेकिन इसमें कई छिपे हुए खतरे हैं। खासकर शुरुआती लोगों के लिए, जो गलत जाँच के कारण गलती से स्क्रिप्ट को "क्रैश" कर सकते हैं।
\n\nआज हम PHP में खाली ऐरे की जाँच के सभी लोकप्रिय तरीकों पर चर्चा करेंगे, सबसे सरल से लेकर पेशेवर तक। आप जानेंगे कि empty(), isset() से कैसे अलग है, क्यों count() खतरनाक हो सकता है, और आदर्श कोड कैसे लिखें। चलिए शुरू करते हैं!
यह क्यों महत्वपूर्ण है? शुरुआती लोगों की सामान्य गलतियाँ
\n\nकल्पना करें: आप उपयोगकर्ता से डेटा प्राप्त कर रहे हैं (उदाहरण के लिए, कार्ट में उत्पादों की सूची)। यदि ऐरे खाली है - तो "कार्ट खाली है" संदेश दिखाना होगा। यदि खाली नहीं है - तो उत्पाद प्रदर्शित करने होंगे। यह सरल तर्क लगता है। लेकिन शुरुआती अक्सर यह लिखते हैं:
\n\n// गलती #1: false से तुलना\nif ($cart == false) {\n echo "कार्ट खाली है";\n}\n\n// गलती #2: अंतर्निहित प्रकार रूपांतरण\nif ($cart) {\n // यह कोड तब निष्पादित होगा जब ऐरे खाली न हो\n}\n\nक्या यह काम करता है? हाँ, लेकिन केवल सरल मामलों में। क्या होगा यदि ऐरे में कुंजियाँ हैं, लेकिन सभी मान null या खाली स्ट्रिंग हैं? या यदि वेरिएबल परिभाषित ही नहीं है? यहीं पर बग शुरू होते हैं। इनसे बचने के लिए, आइए PHP खाली ऐरे जाँच को वास्तविक रूप से समझें।
तरीका #1: empty() फंक्शन - सबसे लोकप्रिय
\n\nयह सबसे पहले दिमाग में आता है। PHP में empty() फंक्शन true लौटाता है यदि वेरिएबल खाली है। ऐरे के लिए, इसका मतलब है: ऐरे मौजूद नहीं है, null के बराबर है, या इसमें कोई तत्व नहीं है।
<?php\n$emptyArray = [];\n$nonEmptyArray = ['apple', 'banana'];\n\nvar_dump(empty($emptyArray)); // true\nvar_dump(empty($nonEmptyArray)); // false\n?>\n\nलाभ: संक्षिप्त, पढ़ने योग्य, अपरिभाषित वेरिएबल के लिए काम करता है (warning नहीं देता)।
\n\nनुकसान: empty() 0, '0', '', false, null और खाली SimpleXMLElement ऑब्जेक्ट को भी खाली मानता है। यदि आपके ऐरे में, उदाहरण के लिए, 0 मान वाला एक तत्व है - तो empty() कहेगा कि यह खाली है। और यह हमेशा वांछित नहीं होता।
<?php\n$trickyArray = [0];\nvar_dump(empty($trickyArray)); // true! जबकि तत्व मौजूद है\n?>\n\nनिष्कर्ष: empty() का उपयोग केवल तभी करें जब आपको पूरा यकीन हो कि ऐरे में "गलत" मान (0, खाली स्ट्रिंग आदि) नहीं होंगे। अधिकांश फॉर्म और उपयोगकर्ता इनपुट कार्यों के लिए, यह एक बढ़िया विकल्प है।
तरीका #2: count() फंक्शन - सटीक गणना
\n\nदूसरा सबसे लोकप्रिय तरीका है count() के माध्यम से ऐरे की खालीपन जाँच। यह फंक्शन ऐरे में तत्वों की संख्या लौटाता है।
\n\n<?php\n$array1 = [];\n$array2 = ['a' => 1, 'b' => 2];\n\nif (count($array1) === 0) {\n echo "ऐरे खाली है";\n}\n\nif (count($array2) > 0) {\n echo "ऐरे खाली नहीं है, इसमें " . count($array2) . " तत्व हैं";\n}\n?>\n\nलाभ: बिल्कुल सटीक परिणाम। यदि count() ने 0 लौटाया - तो ऐरे में कोई तत्व नहीं है। गलत मानों से कोई अप्रत्याशितता नहीं।
\n\nनुकसान: बहुत बड़े ऐरे के लिए, count() empty() से धीमा हो सकता है (हालाँकि अंतर आमतौर पर नगण्य होता है)। सावधान रहें: यदि वेरिएबल परिभाषित नहीं है, तो count() warning देगा। isset() या @count() का उपयोग करें (लेकिन त्रुटियों को दबाना एक बुरा अभ्यास है)।
सर्वोत्तम अभ्यास: isset() के साथ संयोजन करें:
<?php\nif (isset($array) && count($array)