درس 18 از 19

دستورات شرطی در PHP | آموزش if، else و elseif

بخش: مقدمه PHP

دستورات شرطی برای انجام اقدامات مختلف بر اساس شرایط متفاوت استفاده می‌شوند. در PHP دستورات شرطی زیر را داریم:

  • دستور if: اگر یک شرط برقرار باشد، کدی را اجرا می‌کند.
  • دستور if...else: اگر شرطی برقرار باشد کدی را اجرا می‌کند و اگر آن شرط برقرار نباشد، کد دیگری را اجرا می‌کند.
  • دستور if...elseif...else: برای بیش از دو شرط، کدهای متفاوتی را اجرا می‌کند.
  • دستور switch: یکی از چندین بلوک کد را برای اجرا انتخاب می‌کند.

دستور if در PHP

دستور if فقط در صورتی کدی را اجرا می‌کند که شرط مشخص‌شده true (درست) باشد.

Syntax

if (condition) {
  // کد در صورتی اجرا می‌شود که شرط true باشد؛
}

Example

اگر عدد 5 بزرگتر از 3 باشد، پیام “Have a good day!” را چاپ کن:

if (5 > 3) {
  echo "Have a good day!";
}

استفاده از متغیرها در دستور if بسیار رایج است:

$t = 14;
if ($t < 20) {
  echo "Have a good day!";
}

عملگرهای مقایسه‌ای در PHP

یک دستور if معمولاً شامل شرط‌هایی است که دو مقدار را با هم مقایسه می‌کنند. برای مقایسه دو مقدار باید از عملگر مقایسه‌ای استفاده کنیم.

عملگرنامنتیجه
==برابراگر مقادیر برابر باشند true برمی‌گرداند
===یکساناگر مقادیر و نوع داده‌ها یکسان باشند true برمی‌گرداند
!=نابرابراگر مقادیر برابر نباشند true برمی‌گرداند
<>نابرابراگر مقادیر برابر نباشند true برمی‌گرداند
!==غیر یکساناگر مقادیر یا نوع داده‌ها یکسان نباشند true برمی‌گرداند
>بزرگتر ازاگر مقدار اول بزرگتر از دوم باشد true برمی‌گرداند
<کوچکتر ازاگر مقدار اول کوچکتر از دوم باشد true برمی‌گرداند
>=بزرگتر یا مساویاگر مقدار اول بزرگتر یا مساوی دوم باشد true برمی‌گرداند
<=کوچکتر یا مساویاگر مقدار اول کوچکتر یا مساوی دوم باشد true برمی‌گرداند

عملگرهای منطقی در PHP

برای بررسی بیش از یک شرط، می‌توانیم از عملگرهای منطقی مانند && استفاده کنیم:

Example

بررسی کن آیا $a بزرگتر از $b است و آیا $a کوچکتر از $c است:

$a = 200;
$b = 33;
$c = 500;

if ($a > $b && $a < $c ) {
  echo "Both conditions are true";
}

لیست عملگرهای منطقی برای استفاده در دستورات if

عملگرنامتوضیحات
andAndاگر هر دو شرط درست باشند true است
&&Andاگر هر دو شرط درست باشند true است
orOrاگر حداقل یکی از شرط‌ها درست باشد true است
||Orاگر حداقل یکی از شرط‌ها درست باشد true است
xorXorاگر فقط یکی از شرط‌ها درست باشد (نه هر دو) true است
!Notاگر شرط برقرار نباشد true است

می‌توانیم به هر تعداد که بخواهیم شرط را در یک دستور if مقایسه کنیم:

$a = 5;

if ($a == 2 || $a == 3 || $a == 4 || $a == 5 || $a == 6 || $a == 7) {
  echo "$a is a number between 2 and 7";
}

دستور if...else در PHP

دستور if...else اگر شرط برقرار باشد کدی را اجرا می‌کند و اگر آن شرط برقرار نباشد، کد دیگری را اجرا می‌کند.

Syntax

if (condition) {
  // کد در صورت true بودن شرط؛
} else {
  // کد در صورت false بودن شرط؛
}

دستور if...elseif...else در PHP

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

Syntax

if (condition) {
  // کد اگر این شرط true باشد؛
} elseif (condition) {
  // کد اگر شرط اول false و این شرط true باشد؛
} else {
  // کد اگر همه شرط‌ها false باشند؛
}

دستورات شرطی کوتاه (Short Hand)

if تک‌خطی

برای نوشتن کد کوتاه‌تر، می‌توانید دستورات if را در یک خط بنویسید:

$a = 5;

if ($a < 10) $b = "Hello";

echo $b;

if...else تک‌خطی (عملگر سه‌تایی)

دستورات if...else را نیز می‌توان در یک خط نوشت، اما سینتکس آن کمی متفاوت است:

$a = 13;

$b = $a < 10 ? "Hello" : "Good Bye";

echo $b;

شرط‌های تو در تو (Nested If)

شما می‌توانید دستورات if را داخل دستورات if دیگر قرار دهید؛ به این کار دستورات شرطی تو در تو می‌گویند.

$a = 13;

if ($a > 10) {
  echo "Above 10";
  if ($a > 20) {
    echo " and also above 20";
  } else {
    echo " but not above 20";
  }
}