עבור לתוכן

המחרוזת foreach ב-PHP

Featured Replies

פורסם

הבנתי פחות או יותר ש-foreach נועד לשלוף אלמנטים מסוימים מתוך אוביקטים, למשל ב-array.

אפשר לקבל פירוט קצת יותר רחב מזה ובעברית? תודה

  • תגובות 36
  • צפיות 4.9k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

אני אנסה להסביר יותר..

למשל הלולאה for אמורה להדפיס ערך מסוים ומוגבל (כלומר איפה הוא יתחיל ואיפה הוא יסתיים)

ב-foreach גם מדפיסים ערך מסוים מהמערך (array) אבל אני לא מבין מה זה שונה בעצם מ-echo?

למשל הקוד הזה:

<?php
$my_arr = array(2,4,6,8,10);

foreach ($my_arr as $key => $value) {
print "$key : $value";
print '<br />';
}

מה זה בעצם אומר? להדפיס את my_arr כ- key?

ומה זה אמור לעשות? למה לא פשוט לעשות echo $my_arr?

פורסם

זו סתם דוגמה שמדפיסה. מה אם אתה רוצה לעשות משהו אחר עם איברי המערך?

פורסם
  • מחבר
זו סתם דוגמה שמדפיסה. מה אם אתה רוצה לעשות משהו אחר עם איברי המערך?

זה מה שאני שואל, מה זה בדיוק עושה?

מעבר למה שהבאתי פה לא מצאתי הסבר נוסף

פורסם

זה עובר על כל האיברים במערך. אתה יכול לעשות איתם מה שאתה רוצה.

נגיד המערך מכיל מספרים, ואתה רוצה למצוא את הגדול ביותר מביניהם. או לסכום את כולם.

או שהמערך מכיל מחרוזות ואתה רוצה לשרשר את כולן למחרוזת אחת גדולה.

במערך בדוגמה שלך אפשר להשתמש גם ב-for, אבל אפשר ונהוג לבנות מערכים שהגישה אליהם לא מתבצעת באמצעות מספרים סודרים (כלומר אין להם איבר 0, איבר 1, איבר 2 וכן הלאה) אלא באמצעות מפתחות וערכים. רק תראה את הדוגמה למערכים שונים כאן:

http://php.net/manual/en/language.types.array.php

בשביל לעבור על מערך כזה באופן סדרתי חייבים להשתמש ב-foreach.

פורסם
  • מחבר

1. מה לא בסדר בקוד הבא?

2. הפקודה loopcond =false אומרת בעצם להפסיק את הלולאה, אז איך השרת יודע מתי להפסיק אותה?

<?php
$loopCond = true;
while ($loopcond == true){
echo "<p>The loop is runing.</p>"

$loopCond = false;
}
echo "<p>And now it's done.</p>";
?>

פורסם
  • מחבר
מה? לא הבנתי את השאלה.

1. אני לומד באתר codeacademy והם ביקשו ממני לעשות משהו, השלמתי חלק מתוך הקוד שהם נתנו (מה שהבאתי בהודעה הקודמת) אבל הם אומרים שזה לא נכון..אני לא מצליח להבין מה

2. הפקודה למטה loopcond =false אומרת בעצם להפסיק את הלולאה נכון ושלא תיהיה "בלי סוף"? אז איך השרת יודע בדיוק מתי להפסיק אותה?

פורסם

1. איך אתה מצפה שנאמר לך מה הבעיה אם אנחנו לא יודעים מה השאלה?

2. לא, הפקודה הזו אומרת בדיוק לעשות דבר אחד - לשים במשתנה loopcond את הערך false. האופן שבו לולאת while עובדת הוא שכל פעם שנמצאים בהתחלה שלה, בודקים את התנאי. אם הוא מתקיים - מבצעים את הגוף שלה (מה שנמצא בין הסוגריים המסולסלים) ובסופו קופצים בחזרה לתחילתה. אם הוא לא מתקיים אז מפסיקים את הלולאה וממשיכים הלאה לקוד שאחריה. במקרה הזה התנאי הוא loopcond == true.

פורסם
1. מה לא בסדר בקוד הבא?

2. הפקודה loopcond =false אומרת בעצם להפסיק את הלולאה, אז איך השרת יודע מתי להפסיק אותה?

<?php
$loopCond = true;
while ($loopcond == true){
echo "<p>The loop is runing.</p>"

$loopCond = false;
}
echo "<p>And now it's done.</p>";
?>

PHP רגיש לאותיות קטנות/גדולות בשמות המשתנים.

שים לב שבלולאה השתמשת במשתנה loopcond

כשבשאר הקוד הא מוגדר כ-loopCond

פורסם
  • מחבר
PHP רגיש לאותיות קטנות/גדולות בשמות המשתנים.

שים לב שבלולאה השתמשת במשתנה loopcond

כשבשאר הקוד הא מוגדר כ-loopCond

עדיין לא עובד, זה כותב שיש בעיה בשורה 12, כלומר עם:

 $loopCond = false;

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים