</>مدرسه زیب‌موجیاد بگیر، تمرین کن، بساز
مدرسهPHPدرس 5
درس 5 از 26 · ۴۰ دقیقه

حلقه‌ها؛ یک کار را چند بار بنویسیم؟

وقتی ده محصول داریم، ده بار نوشتن echo هم وقت می‌گیرد و هم احتمال اشتباه را بالا می‌برد. حلقه همان دستور را برای چند مقدار اجرا می‌کند.

۰امتیاز شما
نقشه این درس

بعد از این درس دقیقاً چه بلدی؟

  • می‌توانی «foreach» را با مثال همین درس توضیح بدهی.
  • می‌دانی «عضو فعلی» کجای مسئله به کار می‌آید.
  • تغییر پیشنهادی درس را اجرا می‌کنی و از روی نتیجه، اشتباه را پیدا می‌کنی.
به زبان زندگی واقعی

صدا زدن اسم‌های حضور و غیاب

معلم برای هر دانش‌آموز یک کار یکسان انجام می‌دهد: نام را می‌خواند و پاسخ را ثبت می‌کند. foreach هم اعضای یک فهرست را یکی‌یکی در اختیار ما می‌گذارد.

نکته مهم برای شروع PHP

وقتی ده محصول داریم، ده بار نوشتن echo هم وقت می‌گیرد و هم احتمال اشتباه را بالا می‌برد. حلقه همان دستور را برای چند مقدار اجرا می‌کند.

چرا مهم است؟ سه نام محصول داریم و می‌خواهیم بدون سه بار کپی‌کردن دستور، همه را نمایش بدهیم.

اولین تمرین تو: سه نام محصول داریم و می‌خواهیم بدون سه بار کپی‌کردن دستور، همه را نمایش بدهیم.

مفهوم‌های اصلی

اول بفهم، بعد کد بنویس

foreach

برای عبور از همه اعضای یک آرایه خوانا و مناسب است.

عضو فعلی

در هر دور، یکی از مقدارها داخل متغیری مثل $product قرار می‌گیرد.

مرز تکرار

حلقه باید نقطه پایان روشن داشته باشد؛ وگرنه ممکن است هیچ‌وقت متوقف نشود.

سناریوی واقعی

فهرست محصولات

سه نام محصول داریم و می‌خواهیم بدون سه بار کپی‌کردن دستور، همه را نمایش بدهیم.

موقعیتتصمیم برنامهنتیجه قابل دیدن
بازی ساختن کد

قطعه‌ها را به ترتیب درست بچین

روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمه‌های جابه‌جایی هم می‌توانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.

مرحله ۲ از ۳ · مرتب‌کردن کد
بانک قطعه‌هاقطعه مناسب را انتخاب کن
ترتیب پاسخ تواز بالا به پایین اجرا می‌شود

    هنوز پاسخی بررسی نشده است.

    کارگاه تعاملی

    کد را تغییر بده و نتیجه را همان‌جا ببین

    این مفسر آموزشی امن، بخش پایه PHP شامل متغیر، محاسبه، رشته، آرایه و if/else را در مرورگر اجرا می‌کند. کد به سرویس دیگری ارسال نمی‌شود.

    lesson-5.php
    خروجی برنامهمفسر آموزشی آماده است
    برای دیدن نتیجه، «اجرای کد» را بزن.
    خروجی با تغییر کد دوباره محاسبه می‌شود.
    کدخوانی استاد

    این مثال خط‌به‌خط چه می‌گوید؟

    فعلاً حفظ نکن؛ هر خط را به یک جمله ساده تبدیل کن.

    1. 1<?php

      از اینجا مفسر PHP شروع به خواندن کد می‌کند.

    2. 2$products = ["کتاب", "دفتر", "مداد"];

      یک مقدار با نام $products نگه‌داری می‌شود تا در خط‌های بعد دوباره استفاده شود.

    3. 3foreach ($products as $product) {

      تکرار آغاز می‌شود تا همین قانون برای چند مقدار اجرا شود.

    4. 4echo "$product ";

      نتیجه این عبارت به خروجی پاسخ فرستاده می‌شود.

    5. 5}

      مرز یک بلوک یا فراخوانی در اینجا باز یا بسته می‌شود.

    منبع رسمی همین درسمستندات اصلی PHP را ببین ←برای عمیق‌ترشدن؛ لازم نیست در شروع همه آن را بخوانی.
    حالا نوبت توست

    یک محصول تازه به آرایه اضافه کن و پیش از اجرا بگو حلقه چند بار می‌چرخد.

    تمرین پلکانی

    از ساده به چالشی، بدون پرش

    ۱ · گرم‌کردن

    یکی از مقدارهای مثال را عوض کن، خروجی را روی کاغذ حدس بزن و سپس بررسی کن.

    ۲ · تثبیت

    یک محصول تازه به آرایه اضافه کن و پیش از اجرا بگو حلقه چند بار می‌چرخد.

    ۳ · ساختن

    سناریوی «فهرست محصولات» را با نام‌های واضح‌تر و یک حالت تازه گسترش بده.

    دام‌های رایج

    این سه اشتباه را انجام نده

    1

    برای هر عضو یک echo جدا کپی می‌کنی.

    2

    نام آرایه و عضو فعلی را جابه‌جا می‌نویسی.

    3

    در while تغییر شرط را فراموش می‌کنی و حلقه بی‌پایان می‌سازید.

    آزمون پایان درس

    5 پرسش کوتاه؛ مطمئن شو واقعاً یاد گرفته‌ای

    برای هر پرسش یک پاسخ انتخاب کن. بعد از هر انتخاب، دلیل پاسخ را همان‌جا می‌بینی.

    پرسش 1 از 5

    با چهار عضو داخل $products، بدنه foreach چند بار اجرا می‌شود؟

    پرسش 2 از 5

    کدام توضیح، «foreach» را دقیق‌تر بیان می‌کند؟

    پرسش 3 از 5

    بهترین قدم بعد از خواندن مثال این درس چیست؟

    پرسش 4 از 5

    کدام روش نشان می‌دهد این درس را واقعاً فهمیده‌ای؟

    پرسش 5 از 5

    کدام رفتار احتمال خطا را در همین موضوع بیشتر می‌کند؟

    پایان درس 5

    درس را فقط وقتی تمام کن که کد را تغییر داده‌ای

    دیدن آموزش کافی نیست؛ یک مقدار را تغییر بده، خروجی را پیش‌بینی کن و بعد اجرا بزن.