foreach والتحكم في الحلقات
كرّروا عبر المصفوفات باستخدام foreach، واستخدموا break وcontinue.
foreach والتحكم في الحلقات درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
foreach: حلقة المصفوفات
تُعد foreach الطريقة الاصطلاحية للتكرار على المصفوفات والكائنات في PHP — فلا حاجة إلى تتبع الفهرس يدويًا.
foreach مع المصفوفات المفهرسة
كرّر على القيم الموجودة في مصفوفة مفهرسة:
<?php
$fruits = ['apple', 'banana', 'cherry'];
foreach ($fruits as $fruit) {
echo $fruit . PHP_EOL;
}
// apple
// banana
// cherryforeach مع المفتاح => القيمة
احصل على المفتاح والقيمة معًا في كل تكرار:
<?php
$person = ['name' => 'Alice', 'age' => 30, 'city' => 'London'];
foreach ($person as $key => $value) {
echo "$key: $value" . PHP_EOL;
}
// name: Alice
// age: 30
// city: Londonforeach متداخلة
كرّر عبر مصفوفات مكوّنة من مصفوفات أخرى (مثل مجموعات نتائج قواعد البيانات):
<?php
$users = [
['name' => 'Alice', 'role' => 'admin'],
['name' => 'Bob', 'role' => 'user'],
];
foreach ($users as $user) {
echo $user['name'] . ' is ' . $user['role'] . PHP_EOL;
}تعديل عناصر المصفوفة
لتعديل قيم المصفوفة داخل foreach، استخدم مرجعًا &$value:
<?php
$prices = [10, 20, 30];
foreach ($prices as &$price) {
$price *= 1.1; // 10% price increase
}
unset($price); // always unset after reference loop!
print_r($prices); // [11, 22, 33]break داخل foreach
استخدم break للخروج مبكرًا من حلقة foreach:
<?php
$ids = [1, 2, 3, 4, 5];
$target = 3;
foreach ($ids as $id) {
if ($id === $target) {
echo 'Found: ' . $id;
break;
}
}continue داخل foreach
استخدم continue لتخطي عناصر محددة:
<?php
$numbers = [1, 2, 3, 4, 5, 6];
foreach ($numbers as $n) {
if ($n % 2 === 0) continue; // skip evens
echo $n . ' '; // 1 3 5
}list() مع foreach
فكّك المصفوفات الداخلية مباشرةً باستخدام list() أو الصيغة المختصرة []:
<?php
$coords = [[10, 20], [30, 40], [50, 60]];
foreach ($coords as [$x, $y]) {
echo "x=$x, y=$y" . PHP_EOL;
}
// x=10, y=20
// x=30, y=40التكرار على الكائنات
تعمل foreach مع الكائنات — فهي تكرّر على الخصائص العامة افتراضيًا:
<?php
class Config {
public string $host = 'localhost';
public int $port = 3306;
public string $db = 'myapp';
}
foreach (new Config() as $key => $val) {
echo "$key = $val" . PHP_EOL;
}استخدام Generator مع foreach
تتيح مولدات PHP التكرار على مجموعات البيانات الكبيرة دون تحميلها بالكامل في الذاكرة:
<?php
function range100(): Generator {
for ($i = 1; $i <= 100; $i++) {
yield $i;
}
}
foreach (range100() as $num) {
if ($num > 5) break;
echo $num . ' '; // 1 2 3 4 5
}array_walk مقابل foreach
تطبّق array_walk دالة callback على كل عنصر في موضعه — وهي بديل لـ foreach عند إجراء تحويلات بسيطة:
<?php
$names = ['alice', 'bob', 'carol'];
array_walk($names, function (&$name) {
$name = ucfirst($name);
});
print_r($names); // ['Alice', 'Bob', 'Carol']تحقق سريع
عند التكرار على مصفوفة باستخدام مرجع في foreach، ماذا ينبغي أن تفعل بعد انتهاء الحلقة؟
مراجعة: foreach والتحكم في الحلقات
النقاط الأساسية:
foreach ($arr as $val)للتعامل مع القيمforeach ($arr as $key => $val)للتعامل مع أزواج المفتاح والقيمة- استخدم المرجع
&$valللتعديل في موضعه — وألغِ ارتباطه دائمًا بعد الانتهاء - يعمل
breakوcontinueداخل foreach - فكّك المصفوفات الداخلية باستخدام
[$a, $b] - تتيح المولدات لـ foreach معالجة مجموعات البيانات الضخمة بكفاءة في استهلاك الذاكرة
الأسئلة الشائعة
هل درس «foreach والتحكم في الحلقات» مجاني؟
نعم — نص درس «foreach والتحكم في الحلقات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «foreach والتحكم في الحلقات»؟
كرّروا عبر المصفوفات باستخدام foreach، واستخدموا break وcontinue. تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «foreach والتحكم في الحلقات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- if وelseif وelse
- عبارات Switch وMatch
- حلقتا for وwhile
- foreach والتحكم في الحلقات