دوره مجازی PHP (جلسه 6): ساختارهای کنترلی : حلقه ها و آرایه ها



visibility  
mode_comment   ۶۳

در این جلسه از دوره ی مجازی PHP در مورد آرایه ها و ساختارهای کنترلی (حلقه ها) در زبان PHP بحث خواهیم کرد . با استفاده از آرایه ها می توان چندین مقدار را در یک متغیر ذخیره کرد و با استفاده از حلقه ها نیز می توان بلاک هایی از کدها رو به صورت تکراری و چندباره اجرا کرد .

:: در این جلسه به تشریح موارد زیر خواهیم پرداخت :

فصل 6 : ساختارهاي کنترلي : حلقه ها و آرايه ها

مقدمه و آشنايي با حلقه ها و آرايه ها در زبان هاي برنامه نويسي

  • آرايه ها و متغيرهاي مجموعه اي
  • آرايه هاي عددي در مقابل آرايه هاي Associative
  • مفهوم iteration در حلقه ها
  • ساختار حلقه for و بخش هاي مختلف آن
  • ساختار حلقه foreach و کاربرد آن
  • تفاوت حلقه هاي for و foreach
  • ساختار حلقه while و نکات مهم در نحوه ي استفاده از آن
  • ساختار حلقه do...while و تفاوت آن به حلقه ي while
  • استفاده از حلقه هاي تو در تو براي پردازش داده ها و آرايه هاي چند بعدي
  • کاربرد دستورات Continue و Break
  • ميني پروژه : تعين جايگاه نشستن تماشاگران با توجه به جنسيت و سن آنها !
  • تمرين
info توجه

این مطلب یک جلسه از اموزش php حرفه ای می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در اموزش php حرفه ای

comment دیدگاه کاربران
مرتضی replyپاسخ

با سلام
من ثبت نام کردم ولی فعلا وقت نمی کنم فیلم هارو ببینم و تمرین کنم ولی امیدوارم هر چه زودتر وقت بکنم و با شما و پا به پای شما دوستان یاد بگیرم و امیدوارم این همه تعریف هایی که شما دوستان از مباحث می کنید برای من هم اتفاق بیافته و من هم از این مباحث بهره ای ببرم.
:X ❓

لقمان آوند

ان شاء الله
هر وقت تونستید مباحث رو دنبال کنید .

1234567890 replyپاسخ

سلام استاد .

باز یه سوال اصول دین دیگه داشتم 😳

زمانی که میخوام خروجی آرایه رو با var_dump یا print_r ببینم ، مثه خروجی های شما مرتب نیست و آنها رو توی یک سطر نمایش میده . فکر میکنم باید قسمتی از php.ini را عوض کنم اما نمیدونم کجاشو … اگه راهنماییم کنید ممنون میشم .

موضوع دیگه اینکه UTF8-withoutBom ، تغییر encoding را با اون راهنمایی که چند جلسه پیش فرمودید درست نشد ، میشه بگید که مشکلش ممکنه از کجا باشه ؟
با تشکر از آموزش هاتون

لقمان آوند

سلام
قبل و بعد از استفاده از این توابع از تگ pre در html به این شکل استفاده کنید :

مشکلتون با انکودینگ چیه ؟
همون اول که فایل رو می سازید انکودینگ اونو تعین کنید .
به چه مشکلی مواجه هستید شما ؟

1234567890

با تشکر از راهنماییتون .
اینکودینگ اعمال نمیشه… مهم نیست ، بعدا یه راهی پیدا میکنم.

موفق باشید .

لقمان آوند

تو خود phpStorm هم از تنظیماتی که گفته شده یونیکد پیشفرض رو utf8 بزارید ازون به بعد همه ی فایل هاتون utf8 میشه .
اگر مشکلتون برقرار بود بگید که با teamviewer براتون رفعش کنم .

امین کاظمی replyپاسخ

استاد قضیه اشاره گر رو نگرفتم ❗ چرا از اشاره گر استفاده کردیم؟ 😯

لقمان آوند

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

m3y3am

اگر امکان داره در مورد اشاره گرها بیشتر توضیح بدهید. همراه با مثال هایی موضوع را بیشتر تشریح کنید. ممنون میشم. ( اگر 10 دقیقه ای درباره اش ویدئو داشته باشیم عالی میشه)

لقمان آوند

سلام
برای توضیح اولیش بیش از این نمی شد چیزی گفت .
قسمت های بعدی رو ببینید . دو سه مورد از کاربردهاش در کدها آورده شده و توضیح داده میشه . مثل بر گردوندن چندین مقدار از یک تابع، اشاره به ارایه ها برای تغیرات و …

محمد اصلاحی replyپاسخ

استاد میشه یه مطلب از حلقه ها و آرایه های php بدی بخونیم؟
راستش آرایه ها پیچیدگی داره زیاد متوجه نشدم ولی با این حال آرایه های php از vb راحت تره

لقمان آوند

مگه همین جلسه رو ندیدی ؟
در جلسه های بعدی مداوم از حلقه ها استفاده می کنیم …
مطلب چطوری می خوای ؟

محمد اصلاحی

استاد دیگه نیازی نیست
فیلم رو دوباره دیدم و تمرین کردم و الان قضیه رو فهمیدم
ممنون

لقمان آوند

خیلی هم خوب …

neyvid replyپاسخ

سلام.خسته نباشی واقعا عالیه..
من یه سوال دارم چرا وقتی این کد را مینویسیم و خروجی می گیریم فقط یک سطر ایجاد میکنه.مگه نباید 9 سطر ایجاد بشه؟
<?php
echo '’;
for ($i=1;$i<=9;$i++)
{
echo '’;

echo ”;
}

echo ”;

?>

لقمان آوند

در ویدیوها به این مورد اشاره کردیم .
برای چاپ سطر جدید در html باید تگ br رو در دستور echo استفاده کنی :

neyvid replyپاسخ

سلام مجدد.سوال قبلیم حل شد.ببخشید ..علتش اینه که واقعا 9 تا سطر را میسازه ولی چون سطر ها جدا از هم نمیشه پیدا نیست.درسته جواب سوالم؟و فقط ارتفاع زیاد میشه و تا وقتی که td ندیم نشون داده نمیشه.

لقمان آوند

بله درسته …
برای رفتن به سطر جدید در سورس از ثابت PHP_EOL و در html از تگ br استفاده کنید .

neyvid replyپاسخ

سلام.آقا حل شد..برای آپدیت نکردن متغییر استادیوم بود.ببخشید

Amoo Vatan replyپاسخ

استاد گرامی با عرض پوزش اگر امان دارد تمام دیدگاه های قبلی مرا پاک کنید. با توضیحاتی که شما در دیدگاه های جلسه 7 داده بودید بنده جواب سوالات خود را پیدا کردم.
با تشکر

لقمان آوند

انجام شد
موفق باشید

vahid Sadeghian replyپاسخ

سلام استاد
من ساختار echo برای خروجی fname$ چی بنویسم؟

لقمان آوند

سلام
خط آخر کدت رو بد نوشتی . باید اینجوری باشه :

امین کاظمی replyپاسخ

استاد یه سوال:
اگه دوتا حلقه توی هم داشته باشیم. توی حلقه داخلی break استفاده کنیم. از هر دوتا حلقه میپره بیرون یا فقط حلقه داخلی؟

لقمان آوند

سلام
نه
دستور break فقط از یک حلقه شما رو بیرون میندازه .
اگه می خوای از هر دو حلقه بیرون بیای می تونی تو حلقه ی داخلی وقتی به شرط خاصی رسیدی مقدار یه متغیر رو ست کنی و بریک کنی . بعد از حلقه ی داخلی مقدار اون متغیر رو بررسی کنی اگه ست بود از اونجا هم بریک شی …

امید داوالا replyپاسخ

خسته نباشید، بسیار آموزشتون عالی و کاربردی هست.
آقای دکتر چه کتاب انگلیسی خوبی را شما معرفی می کنید برای php?

لقمان آوند

سلام اقا امید
از لطف شما سپاسگزارم
چند تا کتاب معروف هست که هر کدوم رو بتونید بخونید خوبه .
چند موردش :
Beginning PHP and MySQL برای مبتدی هاست …
Practical PHP and MySQL Website Databases
Learning PHP, MySQL, JavaScript, and CSS
Object-Oriented Programming with PHP5
PHP Advanced and Object-Oriented Programming

منصور جواهر replyپاسخ

سلام استاد من مینی پروژه استادیوم و داشتم خودم مینوشتم کدش رو اینطوری نوشتم اما همه یوزر هارو چاپ نمیکنه یه نفر از هر ارایه رو نشون میده

لقمان آوند

سلام منصورجان
کدت ناقصه
زیپ کن برام ایمیل کن که مشکلتو بررسی کنم .

امین خلیلی replyپاسخ

سلام
جناب اوند تو یه سری از فایل های phpدیدم اخر دستور شرطی مینویسهendifاین برای چیه
ممنون

لقمان آوند

برای تعین انتهای محدوده بلاک if هست . البته زمانی که بلاک if رو با : به جای } باز کنید …

رضا ایرانی replyپاسخ

سلام خروجی این کد


با این کد چه فرق میکنه ؟

کد اول رو با var_dump چاپ میکنم مقدار اعضای ارایه همون مقادیر اول هست ولی با echo مقادیر تغیر میکنه
دلیل این تفاوت چیه؟

تو برنامه نویسی شکل صحیح کدوم هست ؟

لقمان آوند

شما توی خود آرایه همون عضو رو echo کردید فقط . ولی به این شکلی که کد زدید نمیشه به همه اعضا اضافه کرد عدد رو. کد صحیح به این شکله :

jj20

با کسب اجازه از استاد
من چون خودم این مسئله رو درک نمیکردم بعد از کلی کلنجار رفتن درکش کردم یه توضیح میدم
در کد دوستمون مقادیر آرایه به درستی تغییر میکنه و اینطور نیست که تغییر نکنه
و همونطور که echo میکنید مشاهده میکنید مقادیر تغییر کردن
ولی شما بعد از تغییر مقادیر دوباره باید مقادیر رو در آرایه ذخیره کنید که اینکار رو انجام ندادید
حالا این ذخیره مقادیر میتونه در همون آرایه یا در آرایه دیگه صورت بگیره

مثلا من در کد زیر با همون ساختار اول foreach (بدون استفاده از ایندکس)اومدم مقادیر رو ذخیره کردم در یک آرایه جدید:

darin replyپاسخ

با عرض سلام و خسته نباشید
استاد وقتی که دستور continue را اموزش می دهید یک مثال اوردید که اعداد زوج را چاپ می کند، دوتا اشتباه نوشتاری هست که بالای کد کامنت کردید که چاپ اعداد فرد در صورتی که اعداد زوج را چاپ میکند و در جلوی شرط هم کامنت کردید که اگر عدد زوج باشد در صورتی که شزط بررسی فرد بودن را میکند.

لقمان آوند

اگر اینطوره احتمالا من اشتباه کردم.
می تونید کامنتا رو تصحیح کنید.

darin

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

محسن رنجبر replyپاسخ

سلام آقای آوند
کد مینی پروژه جدول رنگ من اینه
و مشکلم اینه که ارتفاع هر td مثل کار شما متناسب با تغییر ارتفاع پنجره مرورگر تغییر نمی کنه!
مشکل چیه؟

لقمان آوند

سلام
برای اینکار باید عرض و طول جدول رو 100% بزارید که مربوط به زبان های html و css هست . همین که تونستید اینکارو انجام بدید کافیه …

محسن رنجبر

وقتی ارتفاع جدول رو صد در صد قرار میدم دیگه ارتفاع هر td انگار صفر میشه

لقمان آوند

برای اینکه ارتفاع جدول رو 100% کنید لازمه برای همه تگ های پدرش ارتفاع رو 100% ست کنید . این ترفند رو تو دوره طراحی وب گفتیم … این مقاله رو بخون .
اگر کارتون نشد فایلتون رو برام ایمیل کنید که تصحیحش کنم …

Mehdi Mashayekhi replyپاسخ

سلام استاد ارایه های اسوشیتیو همان ارایه های دوبعدی هستند درسته ؟ و ارایه های سه بعدی هم ارایه های تو در تو ؟

لقمان آوند

نه به آرایه هایی که خودمون ایندکسشون رو تعریف میکنیم اسوشیتیو میگین.
اگه اعضای یه ارایه خودشون آرایه باشن میشه دو بعدی. اگه اون آرایه های داخلی باز اعضاشون آرایه باشه میگیم 3 بعدی و…

a a replyپاسخ

استاد جان سلام. خسته نباشید.
دو تا سوال
1- در اوبنتو هنگامی که به شاخه ی var/www میروم و میخواهم فایلی بسازم یا تغییر دهم با عدم دسترسی یا مجوز رو به رو میشوم مشکل چیه ؟

2- چطوری میتونم از دیتابیس با استفاده از کد ایگنایتر بک آپ بگیرم از کدهای سایت خودش استفاده کردم ولی جواب نداد.

لقمان آوند

سلام
1- مجوز های اون فولدر رو با دستور chmod تغیر بدید. برید تو پوشه var و اینو امتحان کنید رو پوشه www :
chmod 755 www -R
2- الان نمی تونم به این سوال پاسخ بدم. با واژه های backup database codeigniter سرچ کنید و نتایج رو ببینید.

roohi b replyپاسخ

سلام این کد اجرا نمیشه مشکلش چیه؟
http://s6.uplod.ir/i/00774/b9x1svixkcey.jpg

لقمان آوند

کد مشکلی نداره و 0 تا 10 رو غیر از 5 باید چاپ کنه .

Pourya Ariyafar replyپاسخ

سلام استاد
چرا در زمان 1:31:45 ثانیه شما برای لود کردن یک فایل css در php از دستور link استفاده کردید و از include استفاده نکردید؟
لطفا عکس رو نگاه کنید

من از include استفاده کردم ولی کدهام در خروجی بهم خورد،درواقع هر چی داخل css بود در خروجی نشون داد، عکسش رو فرستادم

وحید صالحی

دوست عزیز از include برای پیوست و ضمیمه فایل های php استفاده میشه فایل هایی که پسوند php دارن

Pourya Ariyafar replyپاسخ

استاد شما در این ویدیو یک جدول داده بودید و گفته بودید که یک جدول 20 در 20 رنگی انتخاب کنید طوری که رنگ ها اتوماتیک عوض شن و جواب این تمرین داخل عکس پایینه

من همه جای کد رو متوجه شدم و خودمم شبیه این نوشته بودم ولی اصلا متوجه نمیشم که چطوری و چرا دابل کوتیشن ها رو بین rand ها اوردید؟ و چرا بین هر rand دو نقطه اوردید؟ جلسه های قبلی رو هم نگاه کردم ولی نحوه قرار گرفتن دابل کوتیشن و نقطه در اینجا کمی فرق داره

لقمان آوند

سلام
خروجی rand یه عدده که باید با اپراتور نقطه به مابقی رشته بچسبه! یه سری رشته رو به این شکل به هم چسبوندیم . همین .

میلاد replyپاسخ

سلام
چرا var_dump من مثل شما نمایش نمیده؟ منظم نیست؟
http://uupload.ir/files/w237_untiwqwetled.png

لقمان آوند

من افزونه xdebug رو فعال داشتم . احتمالا شما ندارید و
خیلی مهم نیست . می تونید درون تگ pre در html هم چاپش کنید که بهتر نمایش داده بشه

ervin replyپاسخ

اقای اوند شما یه جا قبل از حلقه foreach از یه متغیر به نام i ایجاد کردید و بعد حلقه هم i++ کردید این از لحاظ منطقی باید یه بار چاپ شه یعنی مقدار متغیر i بشه 1 یا ۲ چرا ۳ بار شد؟ یعنی مقدارش ۳ شد؟ مگه تکرار میشه قبل فورایچ

لقمان آوند

میشه دقیقا بگید کجا؟ یا اینکه کدش رو بدید که من بگم چرا اینطور شده …

Meysam replyپاسخ

چندزبانه کردن سایت توی همین دوره اموزش داده؟

وحید صالحی

خیر دوست عزیز

Meysam replyپاسخ

توی کد مینی پروژه جدول رنگ چطور rand عددش به رشته بچسبه بجای عدد رنگ رو نشون بدن

Meysam replyپاسخ

اگه میشه کدشو بدین دوروزه نتونستم حلش کنم

سامان عبیدزاده replyپاسخ

سلام…من برای دانلود با گوشیم مشکل دارم…اندرویدم 4.4 و با ADM نمیتونم دانلود کنم…
ممنون میشم راهنماییم کنید

لقمان آوند

سلام
دانلود رو باید با pc انجام بدید
به خاطر مسائل امنیتی با گوشی امکانپذیر نیست

نوید حکمت replyپاسخ

سلام و عرض ادب .
ممنون از آموزشهای عالیتون . فوق العاده بود.
لطفا قسمت ششم از دوره ی PHP رو بررسی کنید. به گمانم لینکش خرابه هر کاری کردم دانلود نشد. ممنون

نوید حکمت replyپاسخ

درست شد.
ممنون 🙂

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.