نجاة العبد الرحيم نشر 5 مارس أرسل تقرير نشر 5 مارس السلام عليكم يعطيكن العافية لو سمحتوا هون سطر الforeach ممكن توضحولي ما المقصد من الكتابة هيك ولماذا قمنا بوضع += 3 اقتباس
0 محمد عاطف17 نشر 5 مارس أرسل تقرير نشر 5 مارس وعليكم السلام ورحمة الله وبركاته. تستخدم ال الforeach لتكرار تنفيذ امر معين و طريقة استخدامها هنا صحيحة حيث اذا كان الامر الذى نريد تنفيذه هو عبارة عن سطر واحد فلا مشكلة من عدم وضع اى اقواس .ولكن اذا كان الامر الذى نريد تكراره اكثر من سطر ولم نضع الاقواس فسيتم تكرار اول سطر فقط وباقى الاسطر سيعتبر انها ليست بداخل ال foreach . اما بالنسبة لاستخدام += فهى طريقة مختصرة فبدلا من كتابة الامر هكذا . $acc = $acc + $number; قمنا باختصارها وهى تعنى اننا نريد ان نضيف على القيمة التى فى اليسار قيمة جديدة تساوى القيمة التى فى اليمين . ومن الممكن ايضا استخدام جميع المعاملات -= او *= او /= ايضا. ويوجد خطأ لديكى فى الكود فلاحظى هنا فى تعريف معامل الدالة sum قمتى بكتابته هكذا function sum(...$numbers) فهذا معناه انكى تخبرين php ان يقوم بجمع جميع المعاملات التى يتم تمريرها الى الدالة فى مصفوفة . لذلك عند استدعاء الدالة sum لا تقومى بارسال مصفوفة بل بارسال الارقام متفرقة هكذا . sum(3,2,4,10); و php تلقائيا سيقوم بجمعهم فى مصفوفة واحدة ويضعها فى المعامل $numbers . اى انكى اذا حاولتى ان تقومى بطباعة المعامل $numbers سترين انه مصفوفة وليس رقم . 1 اقتباس
0 عبدالباسط ابراهيم نشر 5 مارس أرسل تقرير نشر 5 مارس أولاً الخطأ الذي يظهر بسبب أن لا نحتاج لإستخدام ال spread operator وهو الثلاث نقاط . . . لذلك يصبح الكود كالتالي function sum($numbers) بدلاً من function sum(...$numbers) ثانياً بالنسبة للمعامل += هو معامل إضافة تراكمية يعني أننا نريد إضافة العدد أو القيمة على يسار المعامل إلى المتغير الموجود على يمينه، بحيث يتم تحديث قيمة هذا المتغير. مثال بسيط: $x = 5; $x += 3; هنا نحن نقول أريد إضافة القيمة 3 إلى متغير $x. فبعد التنفيذ ستكون قيمة $x تساوي 5 + 3 = 8 أي أن القيمة الأصلية لـ$x وهي 5 تم تحديثها إلى 8 عن طريق إضافة 3 إليها. لذلك السطر $acc += $number; هو إختصار ل $acc = $acc + $number; 1 اقتباس
0 Najah Alsaker نشر 5 مارس أرسل تقرير نشر 5 مارس في البداية دعني اقوم بترتيب الكود وتعديله كي يزول الخطأ <?php function sum(...$numbers) { $acc = 0; foreach ($numbers as $number) $acc += $number; echo $acc; } $arr = [3, 2, 4, 10]; sum(...$arr);//قمت باضافة 3 نقاط هنا قبل ال $arr ?> قمت باضافة الثلاث نقاط لان ال $arr عبارة عن مصفوفة لذلك اريدها ان تمرر كل معامل على حدى وليس الجميع بنفس الوقت اقتباس لو سمحتوا هون سطر الforeach ممكن توضحولي ما المقصد من الكتابة هيك ال foreach عبارة عن حلقة تكرارية في لغة ال php وثمنا بتمرير المصفوفة $numbers اليها والمعامل $number الذي هو عبارة عن عنصر واحد من المصفوفة اي في كل دورة من هذا الحلقة ستأخد رقم من مصفوفة الارقام بالترتيب اقتباس لماذا قمنا بوضع += بكل بساطة هذا طريقة كتابة مختصرة وتعني اجمع المعامل الذي قبل اليساوي مع الذي بعدها ساعطيك مثال للتوضيح هذا هو الكود الذي قمت بكتابته $acc += $number; وهذا ما يعنيه $acc =$acc + $number; اي انه فقط لمنع التكرار واختصار اكثر ولكنه يؤدي نفس النتيجة وبالتوفيق لك 1 اقتباس
السؤال
نجاة العبد الرحيم
السلام عليكم يعطيكن العافية لو سمحتوا هون سطر الforeach ممكن توضحولي ما المقصد من الكتابة هيك ولماذا قمنا بوضع +=
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.