Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में foreach लूप की आंतरिक कार्यप्रणाली

PHP में foreach लूप सरणियों (और ऑब्जेक्ट्स) पर पुनरावृत्ति करने का सबसे सरल और पठनीय तरीका है। यह स्वचालित रूप से लूप काउंटर, समाप्ति शर्त और पॉइंटर प्रबंधन को संभालता है।

बुनियादी सिंटैक्स

<?php
$my_arr = array("Joe", "Hannah", "Paul", "Sanna");
foreach ($my_arr as $entry) {
    echo "$entry
"; } ?>

आउटपुट

Joe
Hannah
Paul
Sanna

दो रूप

रूपसिंटैक्सउपयोग
केवल मानforeach ($arr as $value)जब कुंजी की आवश्यकता न हो
कुंजी और मानforeach ($arr as $key => $value)जब कुंजी भी चाहिए

आंतरिक कार्यप्रणाली

  1. आंतरिक पॉइंटर: foreach सरणी की आंतरिक प्रति पर काम करता है (PHP 7+ में), इसलिए मूल सरणी का पॉइंटर प्रभावित नहीं होता।
  2. कोई काउंटर नहीं: for लूप के विपरीत, कोई $i इनिशियलाइज़ेशन, शर्त, या इन्क्रीमेंट आवश्यक नहीं।
  3. स्वचालित समाप्ति: जब सभी तत्व पूरे हो जाते हैं, लूप स्वतः समाप्त होता है।
  4. कॉपी-ऑन-राइट: PHP 7 में, foreach सरणी की प्रति पर पुनरावृत्त करता है, इसलिए लूप के अंदर सरणी संशोधन सुरक्षित है।

उन्नत उपयोग

संदर्भ द्वारा मान संशोधित करना

<?php
$arr = [1, 2, 3];
foreach ($arr as &$value) {
    $value *= 2;
}
unset($value); // महत्वपूर्ण: अंतिम संदर्भ नष्ट करें
print_r($arr); // [2, 4, 6]
?>

सहयोगी सरणी पुनरावृत्ति

<?php
$person = ['name' => 'Joe', 'age' => 25, 'city' => 'NYC'];
foreach ($person as $key => $value) {
    echo "$key: $value\n";
}
?>

प्रदर्शन नोट्स

  • foreach आमतौर पर for लूप से तेज़ होता है सरणियों के लिए।
  • बड़ी सरणियों के लिए, संदर्भ (&$value) का उपयोग करके कॉपी ओवरहेड बचाया जा सकता है।
  • array_walk(), array_map() फ़ंक्शनल विकल्प हैं।

सामान्य नुकसान

  • लूप के बाद unset($value) भूलना (संदर्भ उपयोग में)।
  • लूप के अंदर सरणी में तत्व जोड़ना/हटाना (अप्रत्याशित व्यवहार)।
  • गैर-सरणी/गैर-ट्रैवर्सेबल पर उपयोग करना (त्रुटि)।
  1. - पायथन में सेट (Set) का आंतरिक कार्यान्वयन

    इस लेख में, हम पायथन में सेट (Set) के आंतरिक कार्यान्वयन के बारे में जानेंगे। हम अलग-अलग फ्रेम्स और ऑब्जेक्ट्स में यूनियन और इंटरसेक्शन ऑपरेशन का निरीक्षण करेंगे।आइए एक खाली सेट घोषित करते हैं।>>> s = set()अब आइए तत्वों के साथ एक सेट घोषित करते हैं।>>> s1 = set(tutorialspoint)खाली

  1. पायथन का आंतरिक कार्यान्वयन पायथन का आंतरिक कार्यान्वयन

    इस लेख में, हम पायथन के आंतरिक कार्यान्वयन और पायथन इंटरप्रेटर द्वारा विभिन्न ऑब्जेक्ट्स को मेमोरी में स्पेस आवंटित करने के तरीके के बारे में जानेंगे।पायथन जावा की तरह एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग कंस्ट्रक्ट लैंग्वेज है। पायथन एक इंटरप्रेटर का उपयोग करता है और इसलिए इसे इंटरप्रेटेड लैंग्वेज कहा

  1. पायथन में लिस्ट (List) का आंतरिक कार्यान्वयन पायथन में लिस्ट (List) का आंतरिक कार्यान्वयन

    इस ट्यूटोरियल में, हम पायथन 3.x या उससे पहले के संस्करण में लिस्ट (List) के आंतरिक कार्यान्वयन के बारे में जानेंगे। हम यह भी देखेंगे कि जब हम प्रत्येक चरण में एक पायथन स्टेटमेंट लिखते हैं तो ऑब्जेक्ट और फ्रेम कैसे बनते हैं।लिस्ट इनिशियलाइज़ करना: इसका मतलब है कि हम कुछ तत्वों के साथ एक लिस्ट बना रहे