شرط ها در PHP – مقدمه

در این بخش از آموزش پی اچ پی، می خواهیم با انواع شرط ها در PHP آشنا شویم. در ابتدا با آموزش دستور if در PHP شروع خواهیم کرد.

سپس دستور if else در php را مورد بررسی قرار خواهیم داد. سپس بررسی چندین شرط با دستور شرطی else if را تشریح خواهیم کرد.

در ادامه با دستور switch در پی اچ پی آشنا می شویم. سپس نحوه کار دستور switch و case را با چند مثال به صورت کامل بیان می کنیم. همین طور با دستور break در php آشنا می شویم و اینکه در یک ساختار شرطی switch چه نقشی را ایفا می کند.

شرط ها در PHP

در ادامه آموزش به روش های دیگر نمایش if/else خواهیم پرداخت و روش دیگری برای نمایش در کدها را تشریح می کنیم. به این روش alternative syntax گفته می شود که هنوز بسیاری در کدهای خود، استفاده می کنند.

سپس به دستور if یک خطی یا ternary operator می پردازیم. به این نوع دستور شرطی، دستور شرطی سه گانه نیز گفته می شود. سپس با چندین نکته در مورد استفاده از شرط ها در PHP و همین طور مثال های کاربردی در مورد آن ها، این مطلب آموزشی را ادامه خواهیم داد.

این آموزش، یکی از بخش های آموزش های رایگان PHP در سایت وبمستر وردپرس  می باشد. در صورتی که می خواهید به کلیه بخش های این سری آموزشی رایگان دسترسی داشته باشید، می توانید از لینک زیر استفاده کنید:

برای دسترسی به کلیه سرفصل های آموزش رایگان PHP می توانید از این لینک استفاده کنید.

بخش 1 : چرا باید از ساختار های شرطی در PHP استفاده کنیم؟

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

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

در زبان PHP هم مثل سایر زبان های برنامه نویسی، نیازمند به یک سری ساختارهای شرطی هستیم که بتوانیم روال اجرای برنامه بر اساس شرط های مختلف را کنترل کنیم.

برای این کار از دستورات شرطی در PHP استفاده می شود. در واقع ممکن است برای اجرای یک برنامه PHP، دو یا چند راه برای اجرا وجود داشته باشد. بنابراین برای انتخاب یکی از آن ها می باید از دستور های شرطی در پی اچ پی بهره ببریم.

پس در بسیاری از مواقع، ممکن است بخواهیم بر اساس یک سری شرط های خاص، مسیرهای مختلفی برای اجرای کد خود داشته باشیم. بنابراین در این موارد شرط ها در PHP به کمک ما خواهند آمد. این ممکن است شامل خروجی های مختلف در ازای دستورات شرطی در یک برنامه باشد.

بخش 2 : دستور شرطی if در PHP

دستورات شرطی در php در واقع همان استفاده از « اگر » برای بیان یک شرط می باشد. ساده ترین حالت برای بیان یک دستور شرطی استفاده از یک تک شرط با کلمه کلیدی if  می باشد.

  • ساختار شرط if در PHP: 

    ساختار یک دستور if در زبان پی اچ پی، چیزی مشابه خطوط  کد ارائه شده در پایین می باشد. ابتدا کلمه کلیدی if گذاشته می شود و سپس در داخل پرانتز برای چک کردن یک شرط استفاده می شود.

  • نحوه اجرا مجموعه دستورات شرط if در زبان PHP : 

    دستوراتی که بعد از درست بودن یک شرط if باید انجام بگیرد، در داخل بلاک {  } (یک بلاک باز و بسته با curly bracket) پس از بیان شرط قرار خواهد گرفت.

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

    در صورتی که این مقدار true باشد، در آن صورت دستورات مرتبط با آن شرط if در php ، اجرا خواهند شد. در صورتی که مقدار شرط false باشد، برنامه بدون رفتن به داخل بلاک {  } ، به ادامه اجرای برنامه خواهد پرداخت.

  • ساختار نوشتن تک دستور در صورت درست بودن شرط if (شرط if تک خطی): 

    خیلی وقت ها ممکن است فقط بخواهیم یک دستور تک خطی پس از درست بودن شرط If ، به اجرا دربیاید. در این صورت لازم نیست که از curly braces برای این کار استفاده کنیم.

    برای نوشتن دستور تک خطی شرط if نیازی به بلاک {   } نخواهیم داشت.

  • استفاده از چندین شرط یا حالت برای مقایسه در داخل پرانتز شرط if: 

    برای بررسی چندین شرط در PHP در داخل یک If، می توانیم از عملگرهای منطقی در داخل پرانتز شرط If نیز استفاده نماییم. این عملگرها می توانند شامل && یا || یا هر علمگر منطقی دیگری باشد.

در صورت نیاز به آشنایی با انواع عملگر ها در PHP ، از این لینک می توانید استفاده کنید.

در زیر چند مثال ساده برای درک بهتر دستور شرطی if در php زده شده است. در اولین بخش، فقط یک statement یا دستور برای چک کردن شرط وجود دارد. همچنین در صورت درست بودن شرط if ، فقط یک دستور اجرا خواهد شد.

در دومین بخش همچنان یک شرط با یک دستور برای چک شدن موجود است و در ادامه شرط در صورت درست بودن، بدون نیاز به استفاده از {  } اجرا خواهد شد.

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

در چهارمین بخش، چندین شرط در داخل پرانتز وجود دارد. همین طور در صورت true بودن شرط داخل پرانتز، کلیه دستورات داخل بلاک باز و بسته {  } مورد اجرا واقع می گردند.

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

$name             = "Mehdi";
$age              = 37;
$sex              = "male";
$isMarried        = false;
$selected_numbers = array( 50, 61, 12, 38, 29 );

//Sample of if block with one statement
if ( $name == "Mehdi" ) {
  echo 'Hello ' . $name . '<br>';
}


//If with one statement and without { }
$n = 29;
if ( in_array( $n, $selected_numbers ) )
  echo $n . ' is in favNumbers<br>';


//Sample of if with several conditions
if ( $name == "Mehdi" && $age == 37 ) {
  echo 'Your name is ' . $name . ' and you are ' . $age . ' old.<br>';
}

//Sample of if with several statements in a scope
if ( $name == 'Mehdi' && $isMarried == false ) {
  echo 'Your name is ' . $name . '<br>';
  echo 'You are not married now';
  echo '<br>';

}

//Sample of if with or condition
if ( $isMarried == true || in_array( 50, $selected_numbers ) ) {
  echo 'This condition is true. <br>';
}

/**
The return will be: 
Hello Mehdi
29 is in favNumbers
Your name is Mehdi and you are 37 old.
Your name is Mehdi
You are not married now
This condition is true.
*/
دستور شرطی if else در php

بخش 3 : شرط ها در PHP با روش alternative syntax

زبان php از نوع قدیم تری از syntax برای دستور شرطی if استفاده می کرده است. این روش خصوصا در بین کدهای html باعث خوانایی بیشتر در کدها می شده است.

از alternative syntax یا روش جایگزین دستور شرطی if نیز می توان برای نوشتن شرط if استفاده کرد. در این روش نیازی به گذاشتن علامت باز و بسته curly brackets نمی باشد. به جای آن در انتهای دستورات از کلمه کلیدی endif استفاده می شود.

در نظر داشته باشید که پس از پرانتز از علامت : برای بیان دستورات استفاده خواهد شد.

در صورت درست بودن شرط در داخل پرانتز if ، کلیه دستورات در بین if و endif اجرا خواهد شد. این روش جایگزین شرط ها در PHP می باشد. مثال زیر یک نمونه ساده به همراه خروجی آن می باشد:

//Sample of if with another syntax that is called "alternative syntax"
if ( $name == "Mehdi" && $age == 37 ):
  echo 'Your name is ' . $name . ' and you are ' . $age . ' old.<br>';
  echo '<br>';
endif;

/**
The return will be:
Your name is Mehdi and you are 37 old.
*/

بخش 4 : دستور شرطی else در PHP

یکی دیگر از دستورات پر کاربرد شرط ها در PHP ، دستور if / else در PHP می باشد. در صورتی که بخواهیم یک شرط در صورت درست بودن، یک سری دستورات و در صورت نادرست بودن، یک سری دستورات دیگر را اجرا نماید، از این دستورات شرطی استفاده می کنیم.

  • نحوه کار با دستورات شرطی if و else در PHP : 

    استفاده از دستور if else یکی از پر کاربردترین دستورات شرط ها در PHP می باشد. برای این کار کافی است شرط اول همانند چیزی که در بالا تشریح شد، بیان گردد.

    سپس پس از بسته شدن علامت curly bracket از کلمه کلیدی else استفاده گردد. دستور else نیازی به پرانتز نداشته و دستورات مرتبط با آن مانند شرط If در بین بلاک {  } قرار خواهد گرفت.

  • استفاده از روش جایگزین یا alternative syntax برای دستور else if :

    همانند روشی که برای دستور شرطی if در بالا مثال زده شد، برای else نیز می توان به همین صورت رفتار کرد. فقط کافی است به جای گذاشتن علامت باز و بسته curly bracket ، از علامت : به مانند مثال پایین استفاده شود.

در زیر یک مثال ساده برای درک بهتر دستور شرطی if else در پی اچ پی، زده شده است. در انتهای کدها هم، می توانید نتیجه خروجی آن را نیز مشاهده فرمایید:

//Sample of if/else block in php
if ( $sex == "male" || $age > 40 ) {
  echo "Hey " . $name . " You are older than 40 or  you are a man!<br>";
} else {
  echo "Hey " . $name . " You are less thant 40 and maybe you are a woman!<br>";
}

// Sample of if/else block with another syntax
if ( $sex == "male" || $age > 40 ) :
  echo "Hey " . $name . " You are older than 40 or  you are a man!<br>";
else :
  echo "Hey " . $name . " You are less thant 40 and maybe you are a woman!<hr>";
endif;

/**
The result will be: 
Hey Mehdi You are older than 40 or you are a man!
Hey Mehdi You are older than 40 or you are a man!
*/

بخش 5 : کار با دستورات شرطی elseif و if و else در PHP

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

برای جلوگیری از این تکرار کد در برنامه، ساختاری به نام دستور elseif در PHP معرفی شده است.

  • نحوه کار دستور شرطی elseif و نمایش آن برای شرط ها در PHP :

    در صورت داشتن چندین شرط متوالی برای چک شدن، می توان شرط اول را در دستور If ابتدایی قرار داد. سپس سایر شرط ها با کلمه کلیدی elseif در داخل یک پرانتز باز و بسته قرار داده خواهد شد.

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

    نحوه نمایش آن در مثال زیر بیان شده است.

  • استفاده از روش قدیمی نوشتن دستور if / elseif / else با alternative syntax: 

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

    نمونه یک ساختار شرطی با alternative syntax به صورت کدهای زیر می باشد.

در زیر یک مثال بسیار ساده برای درک بهتر ساختار شرطی if – elseif – else در پی اچ پی، زده شده است. در انتهای کدها هم، می توانید نتیجه خروجی آن را نیز مشاهده فرمایید:

//Sample of if/elseif/else blocks in php
if ( $age > 60 ) {
  echo "Hey " . $name . " You are older than 60 years old <br>";
} elseif ( $age > 40 ) {
  echo "Hey " . $name . " Your age is between 40 and 60 <br>";
} elseif ( $age > 20 ) {
  echo "Hey " . $name . "  Your age is between 20 and 40 <br>";
} else {
  echo "Hey " . $name . " You are younger than 20 years old <br>";
}

//Sample of if/elseif/else block with another syntax
if ( $age > 60 ) :
  echo "Hey " . $name . " You are older than 60 years old <br>";
elseif ( $age > 40 ) :
  echo "Hey " . $name . " Your age is between 40 and 60 <br>";
elseif ( $age > 20 ) :
  echo "Hey " . $name . "  Your age is between 20 and 40 <br>";
else :
  echo "Hey " . $name . " You are younger than 20 years old <br>";
endif;

/**
The result will be: 
Hey Mehdi Your age is between 20 and 40 
Hey Mehdi Your age is between 20 and 40 
*/

بخش 6 : دستور switch در PHP

در حالی که تعداد شرط ها زیاد باشد، شما می توانید از ساختار شرطی switch به همراه case های مختلف استفاده کنید. استفاده از دستور شرطی switch زمانی برای شما پر کاربرد خواهد بود، که بخواهید چندین شرط، عکس العملی یکسانی را از خود نشان دهند.

به جای استفاده از if / else if / else می توانیم از دستور switch به همراه case و default استفاده نماییم.

  •  نحوه کار با switch و case در PHP : 

    برای استفاده از دستور شرطی switch ابتدا باید از کلمه کلیدی switch همانند ساختار شرط if استفاده کنیم. در داخل پرانتز ابتدا عبارتی که قرار محاسبه بر روی آن انجام شود، قرار داده می شود.

    سپس حالت های مختلف با استفاده از کلمه کلیدی case به صورت زیر بیان خواهد شد. در نظر داشته باشید که کلیه case ها در داخل علامت باز و بسته {  } قرار خواهند گرفت.

  • آشنایی با دستور case در ساختار شرطی switch : 

    برای بررسی و مقایسه خروجی شرط داده شده در پرانتز موجود در switch ، از کلمه کلیدی case به همراه آن مقدار و علامت : استفاده می شود. پس از آن دستوراتی که می باید در صورت درست بودن شرط انجام گردند، به صورت پشت سر هم قرار خواهند گرفت. این امر می تواند شامل چندین دستور PHP باشد.

  • break در PHP چه کاری را انجام می دهد؟ 

    از دستور break برای خارج شدن از داخل switch می توانیم استفاده کنیم. به عنوان مثال زمانی که بخواهیم در صورت برقرار بودن یکی از شرط های دستور case از حلقه switch خارج شویم، کافی است در انتهای دستورات مرتبط با آن case از دستور break استفاده کنیم.

    شکل این ساختار توسط مثالی که در پایین زده شده، بیان شده است.

  • در صورتی که بخواهیم چندین شرط پشت سر هم اجرا شود، چه باید بکنیم؟

    خیلی از موارد ممکن است بخواهید که چند شرایط مختلف case همه باهم یک سری دستور را اجرا نمایند. در این صورت کافی است این دستورات case را به صورت پشت سرهم (همانند مثال زیر) بنویسید تا اجرا گردند.

    در واقع با این کار شما خروجی چندین case را باهم or  می کنید.

در زیر یک مثال  برای درک بهتر نحوه کار دستور شرطی switch و case در پی اچ پی، زده شده است. در انتهای کدها هم، می توانید نتیجه خروجی آن را نیز مشاهده فرمایید:

$n = rand( 1, 8 );
var_dump( $n );
switch ( $n ) {
  case 1 :
    echo "Sunday";
    break;
  case 2 :
    echo "Monday";
    break;
  case 3 :
    echo "Tuesday";
    break;
  case 4 :
    echo "Wednesday";
    break;
  case 5 :
    echo "Thursday";
    break;
  case 6 :
    echo "Friday";
    break;
  case 7 :
    echo "Saturday";
    break;
  default:
    echo "This is invalid day!";
}

echo '<hr><br>';

/*Sample of using several switch*/
$msn_random_for_switch = rand( 1, 10 );

switch ( $msn_random_for_switch ) {
  case 1:
  case 2:
  case 3:
  case 4:
    echo 'The number is: ' . $msn_random_for_switch . '<br>';
    echo 'The number is between 1 and 4';
    break;
  default:
    echo 'The number is: ' . $msn_random_for_switch . '<br>';
    echo 'The number is greater than 4';
}

echo '<hr><br>';


/**
The result can be something like this in the following:
C:\xampp\htdocs\php\basics\msn05_ifElseSwitchSamples.php:93:int 3
Tuesday

The number is: 5
The number is greater than 4
*/

بخش 7 : پیاده سازی دستور شرطی با Ternary Operator در PHP

برای دستورهای شرطی if / else هایی که عموما یک دستور برای اجرا شدن دارند، برای کمتر شدن تعداد خطوط کدهای برنامه، از دستور شرطی سه گانه می توان استفاده کرد.

در واقع برای کار با دستورات شرطی if – else در php می توانیم Ternary Operator را استفاده کنیم تا کدهای برنامه کوتاه تر و خلاصه تر گردند.

در این زمینه می توان به نکات زیر اشاره کرد:

  • نحوه کار شرط ها در PHP با ternary operator یا دستور شرطی سه گانه:

    برای این کار می توانیم از کدهایی که در زیر نمونه آن ها آورده شده، استفاده نمود. می توان آن را به این صورت بیان کرد: آیا این شرط درست است؟ سپس پس از شرط از علامت سوال استفاده می شود.

    عبارت داخل شرط یا دارای مقدار true خواهد بود (یعنی نتیجه دستور شرطی درست می باشد) و یا مقدار آن false می باشد. در این صورت عبارت اول را اجرا کن، در غیر این صورت می باید عبارت دوم اجرا گردد.

    دستور اول و دستور دوم، توسط علامت « : » از هم جدا خواهند شد.

  • استفاده از « : ? » در دستور شرطی سه گانه:

    در واقع در این حالت عبارت اول پس از شرط داده نمی شود و علامت سوال و « : » ، پشت سر همدیگر قرار خواهند گرفت. این شرط در واقع یا true را بر می گرداند یا عبارت دوم را به عنوان خروجی بر می گرداند.

    در مثال زیر، در صورتی که ثابت MSN_CONST تعریف شده باشد، عملا شرط کاری را انجام نمی دهد. اما در صورتی که این ثابت تعریف نشده باشد، مقدار آن برابر 20 خواهد شد.

    این یک مثال کاربردی است که بسیار در برنامه نویسی ممکن است به کار گرفته شود.

  • استفاده از عملگر or یا || برای پیاده سازی مشابه با « : ? »

    در صورتی که نخواهید از « : ? » استفاده کنید، می توانید از عملگر or به صورت کد زیر بهره ببرید. در مثال زیر در صورتی که مقدار ثابت MSN_CONST_2 تعریف شده باشد، عملا نتیجه عبارت true بوده و دیگر شرط دوم چک نخواهد شد.

    اما در صورتی که شرط اول درست نباشد، شرط دوم نیز بررسی شده و مقدار ثابت مورد نظر تعریف خواهد شد.

  • استفاده از عملگر and یا && برای پیاده سازی مشابه با « : ? »

    در صورتی که نخواهید از « : ? » استفاده کنید، می توانید از عملگر and به صورت کد زیر بهره ببرید. این مثال دقیقا مشابه مثال قبل می باشد.

    در اینجا در صورت تعریف شدن ثابت از قبل، مقدار شرط اول false شده و عملا عبارت دوم بعد از شرط چک نخواهد شد. اما در صورتی که شرط اول true باشد، در این صورت عبارت دوم اجرا شده و ثابت مورد نظر تعریف خواهد شد.

در زیر یک چندین مثال برای درک بهتر  پیاده سازی دستورات شرطی تک خطی با استفاده از عملگر ternary ، زده شده است. در انتهای کدها هم، می توانید نتیجه خروجی آن را نیز مشاهده فرمایید:

/*Sample of ternary without statement for true condition*/
//if you send a variable, it will check that is it empty or not?
$msn_random_number = rand( 4, 5 );
var_dump( $msn_random_number );
echo $msn_random_number == 4 ?: 'This is 5';

define('MSN_CONST_3',21);
defined( 'MSN_CONST' ) ?: define( 'MSN_CONST', 20 );
var_dump( MSN_CONST );

defined( 'MSN_CONST_2' ) || define( 'MSN_CONST_2', 25 );
var_dump( MSN_CONST_2 );

! defined( 'MSN_CONST_3' ) && define( 'MSN_CONST_3', 40 );
var_dump( MSN_CONST_3 );

echo '<br>';

/**
The result can be something like this:
C:\xampp\htdocs\php\basics\msn05_ifElseSwitchSamples.php:143:int 5
This is 5
C:\xampp\htdocs\php\basics\msn05_ifElseSwitchSamples.php:148:int 21
C:\xampp\htdocs\php\basics\msn05_ifElseSwitchSamples.php:151:int 25
C:\xampp\htdocs\php\basics\msn05_ifElseSwitchSamples.php:154:int 40
*/

نتیجه گیری برای آموزش انواع دستورات شرطی PHP

در این سری از آموزش های PHP ، با انواع دستور های شرطی در PHP آشنا شدیم. در ابتدا با دستور if در PHP آشنا شدیم و نحوه اجرا آن در PHP را بررسی کردیم.

ساختار نوشتن دستورات شرطی if else در PHP را مورد بررسی قرار دادیم. همچنین در هر قسمت بیان کردیم که برای اجرای چندین شرط چگونه باید از عملگرهای منطقی در دستور های شرطی استفاده نماییم.

در ادامه از روش قدیمی نوشتن دستورات if که به alternative syntax شناخته می شوند، توضیحاتی ارائه دادیم. در ادامه به ساختار elseif پرداختیم و چندین مثال در این زمینه بیان کردیم.

سپس در مورد دستور شرطی switch و همین طور نحوه کار case و استفاده از default صحبت کردیم. همچنین با نقش break در دستور شرطی switch آشنا شدیم.

در انتها نیز نحوه پیاده سازی شرط ها با استفاده از دستور شرطی سه گانه یا ternary operator تشریح کردیم.

ممکن است شما با موارد بیشتری در این حوزه آشنا باشید، که ما فراموش کرده ایم تا آن ها را در این مقاله قرار دهیم.

اگر شما از این موارد آگاه هستید، حتما در بخش نظرات عنوان کنید تا آن را به مقاله « انواع شرط ها در PHP » اضافه کنیم. در ضمن اگر این مقاله را مفید دیدید، حتما آن را به دوستان خود معرفی کرده یا در شبکه های اجتماعی به اشتراک بگذارید.

نظر شما در درباره این مقاله چیست؟

راهنما برای مطالعه بیشتر:

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

راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:

شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید:

بازگشت به وبلاگ وبمستر وردپرس