PHP 8.4 नवंबर 2024 में रिलीज़ होने के लिए तैयार है और इसमें कुछ उपयोगी नए ऐरे फ़ंक्शंस पेश किए जाएंगे:
इस लेख में, हम इन नए कार्यों पर एक त्वरित नज़र डालने जा रहे हैं और आप PHP 8.4 पर चलने वाली अपनी परियोजनाओं में उनका उपयोग कैसे कर पाएंगे।
यदि आप लारवेल डेवलपर हैं, तो आप देख सकते हैं कि हमारे पास पहले से ही इल्यूमिनेट\सपोर्ट\कलेक्शन और इल्यूमिनेट\सपोर्ट\Arr कक्षाओं में समान कार्य हैं। लेकिन मुझे अच्छा लगा कि ये फ़ंक्शन PHP के मूल होंगे और इसलिए किसी भी PHP प्रोजेक्ट में उपलब्ध होंगे।
मेरे किसी भी पाठक के लिए जो लारवेल डेवलपर हैं, मैं आपको इन नए कार्यों के लारवेल समकक्ष दिखाऊंगा ताकि आप PHP 8.4 की प्रतीक्षा किए बिना अपने लारवेल प्रोजेक्ट्स में समान कार्यक्षमता प्राप्त कर सकें।
आपको मेरे अन्य लेख को देखने में भी रुचि हो सकती है जो PHP 8.4 की नई "प्रॉपर्टी हुक" सुविधा के बारे में बात करता है।
Array_find फ़ंक्शन पहले तत्व का मान लौटाता है जो कॉलबैक में परिभाषित मानदंडों से मेल खाता है। यदि कोई तत्व कॉलबैक से मेल नहीं खाता है, तो फ़ंक्शन शून्य हो जाता है।
आइए एक सरल उदाहरण पर नजर डालें। हम कल्पना करेंगे कि हमारे पास उत्पादों की एक श्रृंखला है और हम 123456 के बारकोड के साथ उत्पाद ढूंढना चाहते हैं:
$products = [ [ 'name' => 'Macbook Pro', 'type' => 'Laptop', 'barcode' => 123456, ], [ 'name' => 'Framework Laptop 13', 'type' => 'Laptop', 'barcode' => 789012, ], [ 'name' => 'Samsung Galaxy S24', 'type' => 'Phone', 'barcode' => 135791, ], ]; // Find the product with barcode 123456 $findProduct = array_find( array: $products, callback: function (array $product): bool { return $product['barcode'] == 123456; }, );
उपरोक्त कोड चलाने के बाद, $findProduct इसके बराबर होगा:
[ 'name'=> 'Macbook Pro', 'type' => 'Laptop', 'barcode' => 123456, ]
हम दूसरे तर्क के रूप में एक एरो फ़ंक्शन का उपयोग करके इसे थोड़ा और साफ़ कर सकते हैं:
$findProduct = array_find( array: $products, callback: fn (array $product): bool => $product['barcode'] === 123456, );
उपरोक्त कोड पिछले उदाहरण के समान परिणाम देगा।
यदि कोई तत्व कॉलबैक से मेल नहीं खाता है, तो फ़ंक्शन शून्य हो जाएगा। आइए इसका एक उदाहरण देखें:
$nonExistentProduct = array_find( array: $products, callback: fn (array $product): bool => $product['barcode'] === 'invalid', );
इस मामले में, $nonExistentProduct शून्य के बराबर होगा।
लारवेल में, आप Arr::first विधि का उपयोग करके एक समान परिणाम प्राप्त कर सकते हैं:
use Illuminate\Support\Arr; $findProduct = Arr::first( $products, fn (array $product): bool => $product['barcode'] === 123456, );
यह फ़ंक्शन array_find फ़ंक्शन के समान है, लेकिन कॉलबैक से मेल खाने वाले पहले तत्व का मान वापस करने के बजाय, यह कॉलबैक से मेल खाने वाले पहले तत्व की कुंजी लौटाता है।
आइए पहले से अपना $products उदाहरण सरणी लें। इस बार, हम 789012 के बारकोड के साथ उत्पाद की कुंजी ढूंढना चाहते हैं:
$products = [ [ 'name' => 'Macbook Pro', 'type' => 'Laptop', 'barcode' => 123456, ], [ 'name' => 'Framework Laptop 13', 'type' => 'Laptop', 'barcode' => 789012, ], [ 'name' => 'Samsung Galaxy S24', 'type' => 'Phone', 'barcode' => 135791, ], ]; // Find the key of the product with barcode 789012 $findProduct = array_find_key( array: $products, callback: fn (array $product): bool => $product['barcode'] === 789012, );
उपरोक्त कोड चलाने के बाद, $findProduct 1 के बराबर होगा क्योंकि उत्पाद सरणी में दूसरा तत्व है।
यदि कोई तत्व कॉलबैक से मेल नहीं खाता है, तो फ़ंक्शन शून्य हो जाएगा। आइए इसका एक उदाहरण देखें:
$nonExistentProduct = array_find_key( array: $products, callback: fn (array $product): bool => $product['barcode'] === 'invalid', );
इस मामले में, $nonExistentProduct शून्य के बराबर होगा।
लारवेल में, आप array_keys और Arr::first विधियों के संयोजन का उपयोग करके एक समान परिणाम प्राप्त कर सकते हैं:
use Illuminate\Support\Arr; $firstProductKey = Arr::first( array_keys($products), fn (int $key): bool => $products[$key]['barcode'] === 789012, );
उपरोक्त कोड में, हम $products सरणी की कुंजियों की एक सरणी प्राप्त करने के लिए पहले array_keys का उपयोग कर रहे हैं। फिर हम कॉलबैक से मेल खाने वाली पहली कुंजी ढूंढने के लिए Arr::first का उपयोग करते हैं। यह मूल PHP फ़ंक्शन की तुलना में थोड़ा अधिक क्रियात्मक है, लेकिन यह समान परिणाम प्राप्त करता है।
Array_any फ़ंक्शन आपको यह जांचने की अनुमति देता है कि सरणी में कम से कम एक तत्व कॉलबैक में परिभाषित मानदंडों से मेल खाता है। यदि कोई तत्व कॉलबैक से मेल खाता है, तो फ़ंक्शन सत्य लौटाता है। यदि कोई तत्व कॉलबैक से मेल नहीं खाता है, तो फ़ंक्शन गलत रिटर्न देता है।
हमारी $products उदाहरण श्रृंखला को ध्यान में रखते हुए, आइए देखें कि क्या किसी उत्पाद में लैपटॉप का प्रकार है:
$anyProductsAreLaptops = array_any( array: $products, callback: fn (array $product): bool => $product['type'] === 'Laptop', );
इस मामले में, $anyProductsAreLaptops सत्य के बराबर होगा क्योंकि सरणी में कम से कम एक उत्पाद एक लैपटॉप है।
यदि कोई तत्व कॉलबैक से मेल नहीं खाता है, तो फ़ंक्शन गलत लौटाएगा। आइए इसका एक उदाहरण देखें:
$anyProductsAreInvalid = array_any( array: $products, callback: fn (array $product): bool => $product['type'] === 'Invalid', );
इस मामले में, $anyProductsAreInvalid गलत के बराबर होगा।
हम संग्रह पर शामिल विधि का उपयोग करके लारवेल में समान परिणाम प्राप्त कर सकते हैं:
use Illuminate\Support\Collection; $anyProductsAreLaptops = Collection::make($products)->contains( fn (array $product): bool => $product['type'] === 'Laptop', );
उपरोक्त कोड में, हम $products सरणी से एक संग्रह बना रहे हैं और फिर इसमें शामिल विधि का उपयोग करके जांच कर रहे हैं कि संग्रह में कोई भी उत्पाद लैपटॉप है या नहीं।
Array_all फ़ंक्शन array_any फ़ंक्शन के समान है, लेकिन यह जांचने के बजाय कि क्या कम से कम एक तत्व कॉलबैक से मेल खाता है, यह जांचता है कि क्या सभी तत्व कॉलबैक से मेल खाते हैं। यदि सभी तत्व कॉलबैक से मेल खाते हैं, तो फ़ंक्शन सत्य लौटाता है। यदि कोई तत्व कॉलबैक से मेल नहीं खाता है, तो फ़ंक्शन गलत रिटर्न देता है।
आइए जांचें कि क्या हमारी $products श्रृंखला में सभी उत्पाद लैपटॉप हैं:
$allProductsAreLaptops = array_all( array: $products, callback: fn (array $product): bool => $product['type'] === 'Laptop', );
इस मामले में, $allProductsAreLaptops गलत के बराबर होगा क्योंकि सरणी में सभी उत्पाद लैपटॉप नहीं हैं।
लारवेल में, हम संग्रह पर प्रत्येक विधि का उपयोग करके समान परिणाम प्राप्त कर सकते हैं:
use Illuminate\Support\Collection; $allProductsAreLaptops = Collection::make($products)->every( fn (array $product): bool => $product['type'] === 'Laptop', );
उपरोक्त कोड में, हम $products सरणी से एक संग्रह बना रहे हैं और फिर प्रत्येक विधि का उपयोग करके यह जांचते हैं कि संग्रह में सभी उत्पाद लैपटॉप हैं या नहीं।
उम्मीद है, इस आलेख ने आपको दिखाया है कि आप नए ऐरे फ़ंक्शंस का उपयोग कैसे कर सकते हैं जो PHP 8.4 में उपलब्ध होंगे। इससे आपको यह भी पता चल गया होगा कि आप इलुमिनेट\सपोर्ट\कलेक्शन और इल्यूमिनेट\सपोर्ट\Arr कक्षाओं का उपयोग करके लारवेल में समान कार्यक्षमता कैसे प्राप्त कर सकते हैं।
यदि आपको यह पोस्ट पढ़ने में आनंद आया, तो आपको मेरी 220 पेज की ईबुक "बैटल रेडी लारवेल" देखने में रुचि हो सकती है, जो समान विषयों को अधिक गहराई से कवर करती है।
या, आप मेरी अन्य 440 पेज की ईबुक "लारवेल में एपीआई का उपभोग करना" देखना चाहेंगे जो आपको सिखाती है कि अन्य सेवाओं से एपीआई का उपभोग करने के लिए लारवेल का उपयोग कैसे करें।
यदि आप मेरे द्वारा हर बार नई पोस्ट प्रकाशित करने पर अपडेट पाने में रुचि रखते हैं, तो बेझिझक मेरे न्यूज़लेटर के लिए साइन अप करें।
शानदार चीजें बनाते रहें! ?
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3