بدأ العمل بـforeach من PHP4 يشمل ما بعدها
foreach عبارة عن حلقة تكرار في PHP مثل While,For
foreach,(While,For) اهم الفروق:
foreach اقرب الى While في طريقة العمل
عملها :
تشبه foreach هذي الشفرة البرمجية (PHP):
كود PHP:
while(list($key,$val)=each($array))
طرق كتابتها :
اولا
كود PHP:
foreach($array as $key => $val)
يكافئ
كود PHP:
while(list($key,$val)=each($array))
------------------------
ثانيا
كود PHP:
foreach($array as $val)
يكافئ
كود PHP:
while(list(,$val)=each($array))
---------------------------------------------------
كود PHP:
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
في كل دورة اخذنا عنصر من المصفوفة ووضعنا المؤشر الداخلي للمصفوفة على العنصر التالي
ثم ضربنا القيمة الحالية * اثنين
تدبلت كل قيمة من المصفوقة
--------------------------------------------------
كود PHP:
<?php
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
echo "Value: $value<br />\n";
}
foreach ($arr as $value) {
echo "Value: $value<br />\n";
}
?>
كود PHP:
<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
echo "Key: $key; Value: $value<br />\n";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br />\n";
}
?>
تطلع نفس النتيجة في المثالين السابقتين بالطريقتين
كود PHP:
<?php
/* foreach example 1: value only */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo "Current value of \$a: $v.\n";
}
يطبع لك كل مرة القيمة للعنصر الحالي
كود PHP:
/* foreach example 2: value (with key printed for
illustration) */
$a = array(1, 2, 3, 17);
$i = 0; /* for illustrative purposes only */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
$i++;
}
نطبع القيمة للعنصر بترقيم خاص بنا لتحكم اكثر بالحلقه
كود PHP:
/* foreach example 3: key and value */
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
يطبع الرقم كتابة (المفتاح key) بجانبه رقما (القيمة val)
*******************
ملاحظات عامة :
1- لا تقبل استعمال عامل منع الخطأ "@".
2- تقوم باعادة المؤشر الداخلي الى بداية المصفوفة
يعني مافي داعي تستعمل الدالة
3- االملاحظتين السابقتين والامثلة من المنيوال
4- يوجد مثالين اكثر تعقيدا لم اعرضهم
*******************
اتمنى اكون وفقت في شرحي
مع تحياتي أخوك لؤي السقاف..........