
آموزش برنامه نویسی PHP-جلسه پنجم
دستورات شرطی برای انجام اقدامات مختلف براساس شرایط مختلف استفاده میشود.
Table of contents [Show]
- 1 آموزش شرطها و حلقهها در PHP؛ از if و switch تا حلقههای while و for
- 2 ساختارهای شرطی در PHP چی هستند؟
- 3 آموزش if در PHP
- 4 استفاده از else در PHP
- 5 استفاده از elseif
- 6 نکته مهم در استفاده از شرطها
- 7 آموزش switch در PHP
- 8 case در switch چیست؟
- 9 کاربرد break
- 10 default در switch
- 11 حلقهها در PHP چی هستند؟
- 12 آموزش حلقه while در PHP
- 13 چرا افزایش متغیر در while مهم است؟
- 14 آموزش حلقه do while در PHP
- 15 تفاوت while و do while
- 16 آموزش حلقه for در PHP
- 17 مثال کاربردی برای حلقه for
- 18 مقایسه حلقههای while، do while و for
- 19 ترکیب شرطها و حلقهها در PHP
- 20 مثال کاربردی دیگر؛ نمایش اعداد زوج
- 21
- 22 چرا یادگیری شرطها و حلقهها در PHP مهم است؟
- 23 جمعبندی
آموزش شرطها و حلقهها در PHP؛ از ifو switchتا حلقههای whileو for
در برنامهنویسی، تقریباً همیشه لازم است بر اساس یک شرایط خاص تصمیم بگیریم یا یک بخش از کد را چندین بار اجرا کنیم. زبان PHP برای انجام این کار، ساختارهای شرطی (Conditional Statements) و حلقهها (Loops) را در اختیار برنامهنویس قرار میدهد.
در این قسمت از سری آموزش رایگان PHP، با ساختارهای if، else و switch آشنا میشویم و سپس به سراغ حلقههای while، do while و for میرویم. یادگیری این مفاهیم یکی از پایههای مهم برنامهنویسی PHP است و در پروژههای واقعی کاربرد بسیار زیادی دارد.
ساختارهای شرطی در PHP چی هستند؟
فرض کنید میخواهیم برنامهای بنویسیم که اگر سن کاربر بیشتر از ۱۸ سال بود، یک پیام خاص نمایش دهد.
در این شرایط، برنامه باید ابتدا یک شرط را بررسی کند و سپس بر اساس نتیجه آن تصمیم بگیرد که چه کدی اجرا شود.
به چنین ساختاری، شرط یا Conditional Statement گفته میشود.
در PHP مهمترین ساختارهای شرطی عبارتاند از:
ifelseelseifswitch
آموزش ifدر PHP
ساختار if یکی از پرکاربردترین دستورات شرطی در PHP است.
با استفاده از if میتوانیم مشخص کنیم که اگر یک شرط برقرار بود، کد خاصی اجرا شود.
ساختار کلی:
if (condition) {
// code
}برای مثال:
$age = 20;
if ($age >= 18) {
echo "You are an adult";
}در این مثال مقدار متغیر $age برابر با ۲۰ است.
برنامه بررسی میکند:
$age >= 18چون این شرط درست است، دستور echo اجرا میشود و نتیجه زیر نمایش داده خواهد شد:
You are an adultمثال کاربردیتر
$score = 85;
if ($score >= 60) {
echo "You passed the exam.";
}اگر نمره کاربر ۶۰ یا بیشتر باشد، پیام قبولی نمایش داده میشود.
استفاده از elseدر PHP
گاهی اوقات میخواهیم اگر شرط if درست نبود، بخش دیگری از برنامه اجرا شود.
در این شرایط از else استفاده میکنیم.
ساختار کلی:
if (condition) {
// اگر شرط درست باشد
} else {
// اگر شرط درست نباشد
}مثال:
$age = 16;
if ($age >= 18) {
echo "You can enter.";
} else {
echo "You cannot enter.";
}در اینجا چون مقدار $age برابر با ۱۶ است، شرط برقرار نیست و قسمت else اجرا میشود.
استفاده از elseif
گاهی اوقات فقط دو حالت نداریم و لازم است چند شرط مختلف را بررسی کنیم.
برای این کار میتوانیم از elseif استفاده کنیم.
مثال:
$score = 75;
if ($score >= 90) {
echo "Excellent";
} elseif ($score >= 70) {
echo "Good";
} elseif ($score >= 60) {
echo "Acceptable";
} else {
echo "Failed";
}PHP شرطها را از بالا به پایین بررسی میکند.
در این مثال:
- اگر نمره ۹۰ یا بیشتر باشد →
Excellent - اگر نمره بین ۷۰ تا ۸۹ باشد →
Good - اگر نمره بین ۶۰ تا ۶۹ باشد →
Acceptable - در غیر این صورت →
Failed
نکته مهم در استفاده از شرطها
در PHP میتوانیم از عملگرهای مقایسهای برای ساخت شرط استفاده کنیم.
برای مثال:
$a == $bبررسی میکند که آیا دو مقدار برابر هستند یا خیر.
برخی از عملگرهای پرکاربرد:
| عملگر | مفهوم |
|---|---|
== | برابر بودن مقدار |
=== | برابر بودن مقدار و نوع داده |
!= | نابرابر |
!== | نابرابر بودن مقدار یا نوع |
> | بزرگتر |
< | کوچکتر |
>= | بزرگتر یا مساوی |
<= | کوچکتر یا مساوی |
مثال:
$age = 25;
if ($age > 18) {
echo "Adult";
}آموزش switchدر PHP
ساختار switch زمانی کاربرد دارد که بخواهیم یک مقدار را با چند حالت مختلف مقایسه کنیم.
برای مثال فرض کنید روزهای هفته را با یک عدد مشخص کردهایم.
$day = 3;
switch ($day) {
case 1:
echo "Saturday";
break;
case 2:
echo "Sunday";
break;
case 3:
echo "Monday";
break;
default:
echo "Invalid day";
}در این مثال مقدار $day برابر با ۳ است، بنابراین:
Mondayنمایش داده میشود.
caseدر switch چیست؟
هر case یک حالت مختلف را مشخص میکند.
مثلاً:
switch ($day) {
case 1:
echo "Saturday";
break;
case 2:
echo "Sunday";
break;
}PHP مقدار $day را با مقدارهای مشخصشده در case مقایسه میکند.
کاربرد break
دستور break بسیار مهم است.
بعد از اینکه PHP یک case را پیدا کرد، با استفاده از break از اجرای ادامه switch جلوگیری میکنیم.
مثال:
$number = 2;
switch ($number) {
case 1:
echo "One";
break;
case 2:
echo "Two";
break;
case 3:
echo "Three";
break;
}خروجی:
Twodefaultدر switch
اگر هیچکدام از caseها با مقدار موردنظر مطابقت نداشته باشند، قسمت default اجرا میشود.
$number = 10;
switch ($number) {
case 1:
echo "One";
break;
case 2:
echo "Two";
break;
default:
echo "Unknown number";
}خروجی:
Unknown numberحلقهها در PHP چی هستند؟
یکی از مهمترین قابلیتهای هر زبان برنامهنویسی، امکان تکرار یک بخش از کد است.
فرض کنید میخواهیم اعداد ۱ تا ۱۰۰ را نمایش دهیم.
بدون حلقه باید کدهای زیادی بنویسیم:
echo 1;
echo 2;
echo 3;و همینطور ادامه دهیم.
اما با استفاده از حلقهها میتوانیم این کار را با چند خط کد انجام دهیم.
در PHP چند نوع حلقه پرکاربرد وجود دارد که در این قسمت با آنها آشنا میشویم:
whiledo whilefor
آموزش حلقه whileدر PHP
حلقه while تا زمانی که یک شرط درست باشد، کدهای داخل خودش را اجرا میکند.
ساختار کلی:
while (condition) {
// code
}مثال:
$i = 1;
while ($i <= 5) {
echo $i;
$i++;
}خروجی:
12345در این مثال ابتدا $i برابر ۱ است.
حلقه بررسی میکند:
$i <= 5تا زمانی که این شرط درست باشد، کد داخل حلقه اجرا میشود.
در هر بار اجرای حلقه نیز:
$i++;مقدار $i را یک واحد افزایش میدهد.
چرا افزایش متغیر در while مهم است؟
یکی از اشتباهات رایج هنگام استفاده از while این است که متغیر کنترلکننده حلقه را تغییر ندهیم.
مثلاً:
$i = 1;
while ($i <= 5) {
echo $i;
}در این حالت مقدار $i هیچوقت تغییر نمیکند و شرط همیشه درست باقی میماند.
در نتیجه با یک حلقه بینهایت (Infinite Loop) مواجه میشویم.
روش صحیح:
$i = 1;
while ($i <= 5) {
echo $i;
$i++;
}آموزش حلقه do whileدر PHP
حلقه do while شبیه while است، اما یک تفاوت مهم دارد.
در do while، کد حداقل یک بار اجرا میشود و بعد شرط بررسی میشود.
ساختار:
do {
// code
} while (condition);مثال:
$i = 1;
do {
echo $i;
$i++;
} while ($i <= 5);خروجی:
12345تفاوت while و do while
به این مثال توجه کنید:
$i = 10;
while ($i < 5) {
echo $i;
}چون شرط از ابتدا غلط است، کد داخل while اصلاً اجرا نمیشود.
اما:
$i = 10;
do {
echo $i;
} while ($i < 5);در این حالت ابتدا echo اجرا میشود و سپس شرط بررسی میشود.
بنابراین خروجی:
10است.
خلاصه تفاوت
while:
ابتدا شرط را بررسی میکند، سپس کد را اجرا میکند.
do while:
ابتدا کد را اجرا میکند، سپس شرط را بررسی میکند.
آموزش حلقه forدر PHP
حلقه for یکی از پرکاربردترین حلقهها در PHP است؛ مخصوصاً زمانی که میدانیم حلقه باید چند بار اجرا شود.
ساختار کلی:
for (initialization; condition; increment) {
// code
}مثال:
for ($i = 1; $i <= 5; $i++) {
echo $i;
}خروجی:
12345در این مثال سه بخش مهم داریم:
$i = 1مقدار اولیه متغیر را مشخص میکند.
$i <= 5شرط ادامه اجرای حلقه است.
$i++بعد از هر بار اجرای حلقه، مقدار $i را یک واحد افزایش میدهد.
مثال کاربردی برای حلقه for
فرض کنید میخواهیم جدول ضرب عدد ۵ را ایجاد کنیم:
for ($i = 1; $i <= 10; $i++) {
echo "5 x $i = " . (5 * $i) . "<br>";
}خروجی چیزی شبیه این خواهد بود:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
...
5 x 10 = 50این یکی از مثالهای ساده و کاربردی برای درک مفهوم حلقههاست.
مقایسه حلقههای while، do while و for
هر سه حلقه برای تکرار کد استفاده میشوند، اما کاربردشان میتواند متفاوت باشد.
| حلقه | کاربرد |
|---|---|
while | زمانی که شرط تعیینکننده ادامه حلقه است |
do while | زمانی که میخواهیم کد حداقل یک بار اجرا شود |
for | زمانی که تعداد تکرار یا ساختار شمارنده مشخص است |
برای مثال اگر بدانیم میخواهیم دقیقاً ۱۰ بار یک عملیات را انجام دهیم، for معمولاً انتخاب مناسبی است:
for ($i = 1; $i <= 10; $i++) {
echo $i;
}اما زمانی که نمیدانیم دقیقاً چند بار قرار است حلقه اجرا شود و ادامه آن به یک شرط وابسته است، while میتواند انتخاب مناسبی باشد.
ترکیب شرطها و حلقهها در PHP
در پروژههای واقعی معمولاً شرطها و حلقهها را به صورت جداگانه استفاده نمیکنیم؛ بلکه آنها را با یکدیگر ترکیب میکنیم.
برای مثال:
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 == 0) {
echo "$i is even<br>";
}
}در این مثال ابتدا اعداد ۱ تا ۱۰ توسط حلقه for تولید میشوند.
سپس با استفاده از if بررسی میکنیم که آیا عدد زوج است یا خیر.
عملگر:
%باقیمانده تقسیم را محاسبه میکند.
بنابراین اگر:
$i % 2 == 0باشد، عدد زوج است.
مثال کاربردی دیگر؛ نمایش اعداد زوج
$i = 1;
while ($i <= 20) {
if ($i % 2 == 0) {
echo $i . "<br>";
}
$i++;
}در این مثال حلقه اعداد ۱ تا ۲۰ را بررسی میکند و شرط if فقط اعداد زوج را نمایش میدهد.
چرا یادگیری شرطها و حلقهها در PHP مهم است؟
ساختارهای شرطی و حلقهها تقریباً در تمام پروژههای واقعی PHP استفاده میشوند.
برای مثال در یک سایت فروشگاهی ممکن است نیاز داشته باشیم:
- موجودی یک محصول را بررسی کنیم.
- اگر محصول موجود بود، دکمه خرید را نمایش دهیم.
- اگر موجود نبود، پیام اتمام موجودی نشان دهیم.
- محصولات را با استفاده از حلقه نمایش دهیم.
- سفارشهای کاربران را یکییکی بررسی کنیم.
- نقش کاربر را مشخص کنیم.
- قیمت محصولات را بر اساس شرایط مختلف تغییر دهیم.
- اطلاعات دیتابیس را دریافت و در صفحه نمایش دهیم.
تمام این موارد به درک صحیح شرطها و حلقهها نیاز دارند.
جمعبندی
در این قسمت از آموزش PHP با یکی از مهمترین مباحث پایه برنامهنویسی آشنا شدیم.
ابتدا ساختارهای شرطی را بررسی کردیم:
ifelseelseifswitchcasebreakdefault
سپس با مفهوم حلقهها آشنا شدیم و نحوه استفاده از موارد زیر را یاد گرفتیم:
whiledo whilefor
همچنین دیدیم که چگونه میتوانیم شرطها و حلقهها را با یکدیگر ترکیب کنیم و از آنها برای حل مسائل مختلف استفاده کنیم.
اگر در حال یادگیری PHP از صفر هستید، تسلط بر این مباحث اهمیت بسیار زیادی دارد؛ زیرا در ادامه مسیر، هنگام کار با آرایهها، توابع، فرمها، دیتابیس و پروژههای واقعی PHP بارها از شرطها و حلقهها استفاده خواهید کرد.

مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.



