recent
أخبار ساخنة

الحلقات التكرارية Loops في لغة PHP الدرس|6|

الصفحة الرئيسية
الحلقات التكرارية loops لغة PHP

الحلقات التكرارية loops في لغة PHP

الحلقة التكرارية loop في لغة php, مفهوم التكرار يعني loop في اللغة الإنجليزية و يستخدم اللوب. في لغات البرمجة عامة لعدم تكرار كود برمجي أو أي شي نريده عدة مرات.

عندما نريد تكرار كود عدة مرات فقط نقوم بوضعه ضمن حلقة التكرار. و نقوم بتنفيذه ووضع شروط حسب سير البرنامج الذي نعمل به.

نقوم بإستخدام الحلقات rings في البرمجة لتسهل علينا عدم كتابة نفس الكود عدة مرات.

في حال أردنا إستخدامه لمرات عديدة نقوم بوضعه بداخل حلقة. و هي سوف تقوم بدوره في إعادة تكراره على حسب طلبنا.

سوف نتحدث عن الحلقات التكرارية بإستخدام php, لا تختلف كثيراً عن اللغات الأُخرى, فقط الإشارات في php.

من الممكن أن تدير تنفيذ برنامج بهياكل تحكم مختلفة و في هذا الدرس سنلقي نظرة على الحلقات Loop.

يمكن إستخدام الحلقات لتكرار اجزاء من البرنامج بعدد من المرات أو إلى أن يتحقق شرط معين.


حلقة while loop في لغة PHP

تستخدم حلقة while loop في لغة php من أجل تكرار تنفيذ جملة معينة أو مجموعة من الجمل.

ويتوقف هذا التكرار عند تنفيذ العدد المطلوب في الشرط.

الصيغة العامة لكتابة حلقة while في php هي:

while (condition) {
    statement
}

قبل الشروع في اي شيئ هيا بنا نأخذ مثال بسيط حتى تفهم منطق عمل دالة while loop في php.

<?php
    while ($x <= 5){
        echo "<p>النص المراد تكراره</p>";
        $x = $x +1;
    }
?>

تحدثنا في بداية هذا الدرس ان الحلقات يمكن استخدامها لتكرار اجزاء معينة داخل السكربت لعدد مرات معين او تحقيق شرط معين.

قمنا بإستخدام الدالة while و نقول لها اذا كان المتغير x اصغر او يساوي 5 يقوم بطباعة الجملة الموجودة في دالة الطبع.

لكن إلى الآن المتغير x ليس له اي data او بيانات, لا يحفظ شيئ بداخل المتغير لذلك قلنا $x = $x +1;.

وفي تلك الحالة سيزيد قيمة x في كل مرة 1 مع تكرار الجملة المذكورة بالأعلى.

وسيتم تكرار الجملة 6 مرات ثم يتحقق الشرط وتقف loop وسيكون الناتج في السيرفر بالشكل.

النص المراد تكراره
النص المراد تكراره
النص المراد تكراره
النص المراد تكراره
النص المراد تكراره
النص المراد تكراره

 

حلقة for loop في لغة PHP

تستخدم حلقة for التكرارية لتكرار تنفيذ عملية محددة عدة مرات و تأخذ الصيغة الآتية.

for (initialization condition step){
    statement
}

مثال 1

<?php
    for($x=0; $x <= 50; $x = $x + 5){
        echo "<p> variable $x is now = " .  $x . "</p>";
    }
?>

قمنا بعمل loops بإستخدام for وكما تحدثنا بالأعلى ان في الحلقات يتم تكرار جزء معين او شرط معين.

ونحن هنا نقول لمفسر php هناك متغير بإسم x و هذا المتغير يحفظ من البيانات على العدد 0 و هذا هو الأمر 0 = x$.

ثم نقول للمفسر إذا كانت x اصغر من او تساوي 50 وهذا هو الأمر 50 =>x$ ثم نقول للمفسر قم بزيادة حجم x كل مره 5 لحين يكتمل العدد الى 50.

وهذا هو الكود 5 + x = $x$ معنى ذلك سيتم تصغير حجم loops لأننا قمنا بزيادة قيمة x كل مره 5 وليس واحد كما هو في المثال الذي قبل هذا.

ثم قمنا بالطباعة, لآحظ الناتج في السيرفر.

variable 0 is now = 0
variable 5 is now = 5
variable 10 is now = 10
variable 15 is now = 15
variable 20 is now = 20
variable 25 is now = 25
variable 30 is now = 30
variable 35 is now = 35
variable 40 is now = 40
variable 45 is now = 45
variable 50 is now = 50

لاحظ كيف تزداد قيمة x كل مرة 5 .

مثال 2

<?php
    for ($x=1 ; $x <= 6 ; $x = $x + 1){
        echo "<h" . $x . "> heading level " . $x . "</h".$x.">";
    }
?>

هل تتذكر في html في درس العناوين, هناك وسم <h> هذا الوسم المسؤول في html عن heading.

ونحن نعرف ان اكبر شيئ في العناوين هو <h1> واصغرها <h6> و في المثال السابق قمنا بإستخدام ذلك.

حيث ان for ستقوم بعمل loops معين و شرط معين.

قمنا في المثال السابق بإنشاء متغير x يحفظ من البيانات على العدد 1 و هذا هو الكود الخاص بذلك الامر 1 =  x$.

ثم في كل تكرار نكتب عنوان على مستوى x اي h1 ثم h2 ثم h3 ......الخ, إلى ان تصبح قيمة x تساوي 6 و سيكون الناتج في المتصفح بالشكل.

ناتج كود حلقة for loop


حلقات التكرار المتداخلة Loops Nested في لغة PHP

كمبدأ ليس هناك حد لكيفية استخدام الحلقات, فمثلاً يمكنك بسهولة ان تضع حلقات داخل حلقات وهكذا تنشئ العديد من التكرار.

لكن احذر PHP تصبح بطيئة ومعقدة ويكبر حجم البرنامج.

مثال

<?php
    for ($KaissarRed = 0; $KaissarRed <= 255; $KaissarRed = $KaissarRed + 30){
       for ($KaissarGreen = 0 ; $KaissarGreen <=255; $KaissarGreen = $KaissarGreen + 30){
          for ($KaissarBlue = 0; $KaissarBlue <= 255; $KaissarBlue = $KaissarBlue + 30){
                $strcolor = "rgb(" . $KaissarRed . "," . $KaissarGreen . "," . $KaissarBlue . ")";
                echo "<span style='color:" . $strcolor . "'>" . $strcolor ."<br>"."</span>";
           }
     }
}
?>

قمنا بإنشاء ثلاث حلقات حيث تحتوي كل حلقة على شرط معين, كل الألوان اولها الأحمر و الأخضر و الأزرق.

يمكنها ان تحمل قيمة ما بين 0 و 255 وهذا الرقم الذي تم تحديده في الشرط اي مركب من الألوان الثلاثة.

لون بشكل (rgb(255,255,255 وسيتم زيادة كل متغير من المتغيرات التي تم تحديدها بمقدار 30.

وسيكون الناتج في المتصفح بذلك الشكل.


google-playkhamsatmostaqltradent