بخش سوم: عبارات شرطی و حلقه ها در PHP

آموزش برنامه نویسی php

عبارات شرطی

عبارات شرطی به منظور تصمیم گیری در مورد اجرای دستورات مختلف براساس شرایط متفاوت استفاده می شوند. عبارات شرطی متداول در PHP شامل موارد زیر هستند:

عبارت if) در صورت درستی شرط درون عبارت if ، دستورات اجرا شوند.

عبارت if … else) در صورت درستی شرط if، یکی سری از دستورات بعد از if و در صورت عدم برقراری شرط، دستورات بعد از else اجرا می شود.

عبارت if … elseif … else) مشابه عبارت فوق، در صورت درستی شروط متفاوت هر بخش، دستورات مرتبط با آن بخش به اجرا در می آید. این عبارت درحالتی که تعداد شرط ها بیش از دو حالت را شامل می شوند، به کار می رود.

عبارت switch) انتخاب یکی از بخش های مختلف کد برای اجرا. بررسی و تفکیک بخش ها و شرط های مختلف با کمک عبارت case انجام می شود.

عبارت if)

در صورت برقراری شرط بعد از if (شرط داخل پرانتز)، کدهای داخل بلاک {} به اجرا در می آید.

مثال:

<?php

$t = 2;

if ($t > 1) {
    echo "The number is greater than one";
}
?> 

با اجرای کد فوق، شرط $t بزرگتر از 1 بررسی می شود و چون متغیر $t مقدار 2 را دارد، شرط برقرار است و عبارت The number is greater than one به نمایش در می آید.

نکته: در صورتی که تعداد خطوط دستورات مربوط به if، یک خط باشد می توان از نوشتن بلاک {} صرف نظر کرد.

عبارت if … else)

در صورت برقراری شرط if، کدهای بلاک if و در صورت عدم برقراری شرط if، کدهای بلاک else به اجرا در می آیند.

مثال:

<?php

if ($t = = "Black") {
    echo "This is Black";
} else {
    echo "This is not Black";
}
?>

با اجرای کد فوق، در صورتی که مقدار متغیر $t برابر Black باشد عبارت This is Black و در صورتی که مقدار $t برابر Black نباشد، عبارت This is not Black نمایش داده می شود.

عبارت if … elseif … else)

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

مثال:

<?php

if ($t < 2) {
    echo "This is less than 2";
} elseif ($t < 10) {
    echo "This is less than 10";
} else {
    echo "This is not less than 2 and 10";
}
?> 

با اجرای کد فوق، در صورتی که مقدار $t کوچکتر از 2 باشد، عبارت This is less than 2، در غیر این صورت، اگر مقدار $t کوچکتر از 10 باشد، عبارت This less than 10 و در صورتی که این شرط هم برقرار نباشد عبارت This is not less than 2 and 10 به نمایش در می آید.

عبارت Switch)

این عبارت دارای ساختار مخصوص به خود است و از تعدادی بلاک case و یک بلاک default تشکیل شده است. ابتدا عبارت مورد نظر (شرط) داخل switch مورد بررسی قرار می گیرد، در صورتی که این عبارت با عبارت جلوی case ها منطبق بود، کد های مربوط به بلاک آن case به اجرا در می آید. از عبارت break  برای جلوگیری از اجرای خودکار case های بعدی استفاده می شود. در صورتی که برای عبارت مورد ارزیابی switch ، با هیچ یک از caseها منطبق نباشد، کدهای بلاک default به اجرا در می آیند.

مثال:

<?php
$favcolor = "red";

switch ($favcolor) {
    case "red":
        echo "Your favorite color is red!";
        break;
    case "blue":
        echo "Your favorite color is blue!";
        break;
    case "green":
        echo "Your favorite color is green!";
        break;
    default:
        echo "Your favorite color is neither red, blue, nor green!";
}
?> 

با اجرای کد فوق، عبارت داخل switch (متغیر $favcolor) مورد ارزیابی قرار می گیرد و چون مقدار آن برابر red است، بلاک مربوطه اجرا شده و عبارت Your favorite color is red! به نمایش در می آید. در صورتی که متغیر $favcolor مقداری به جز red، blue یا green داشته باشد، کدهای بخش default اجرا شده و عبارت Your favorite color is neither red, blue, nor green! نمایش داده می شود.

حلقه ها

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

حلقه while) تا زمانی که شرط while برقرار باشد، مجموعه دستورات درون بلاک while به اجرا در می آیند.

حلقه do … while) دستورات بلاک حلقه (بلاک do) یکبار اجرا می شوند و در صورت درستی شرط while تکرار حلقه ادامه می یابد.

حلقه for) بلاک دستورات حلقه برای تعداد دفعات معینی به اجرا در می آید.حلقه foreach) بلاک دستورات حلقه برای هر المان آرایه به اجرا در می آید.

حلقه while)

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

مثال:

<?php 
$x = 1; 

while($x <= 5) {
    echo "The number is: $x <br>";
    $x++;
} 
?> 

در مثال فوق، در هر مرتبه از اجرای حلقه، ابتدا شرط حلقه بررسی می شود. اگر مقدار $x کوچکتر یا مساوی 5 بود، کدهای بلاک حلقه اجرا شده و عبارت (مقدار $x) The number is: $x به نمایش در می آید و پس از آن مقدار $x  یک واحد اقزایش می یابد.

نکته: در صورتی که شرط while همواره برقرار باشد و اجرای حلقه هیچ وقت پایان نپذیرد، برنامه می تواند دچار خطا گردد.

حلقه do…while)

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

مثال:

<?php 
$x = 5; 

do {
    echo "The number is: $x <br>";
    $x++;
} while ($x <= 5);
?> 

در مثال فوق، عبارت  The number is: $x تنها یکبار به نمایش در می آید. چون درون بلاک do مقدار $x یک واحد افزایش می یابد و شرط while برای ادامه حلقه نقض می شود.

حلقه for)

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

(افزایش/کاهش مقدار شمارنده;  شرط تکرار حلقه ; انتساب مقدار اولیه شمارنده) for

مثال:

<?php 
for ($x = 0; $x <= 10; $x++) {
    echo "The number is: $x <br>";
} 
?> 

مثال فوق عبارت The number is: را برای مقادیر 0 تا 10 (با 11 مرتبه اجرای حلقه) نمایش می دهد.

حلقه foreach)

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

( متغیری به عنوان مقدار المان  as  آرایه ) foreach

مثال:

<?php 
$colors = array("red", "green", "blue", "yellow"); 

foreach ($colors as $value) {
    echo "$value <br>";
}
?> 

در مثال فوق، مقدار هر المان آرایه $colors در متغیر $value قرار می گیرد و تمامی المان ها آرایه به ترتیب به نمایش در می آیند.

در صورتی که بخواهیم به کلید (اندیس) هر المان دسترسی داشته باشیم، می توانیم کد فوق را به شکل زیر بازنویسی کنیم:

<?php 
$colors = array("red", "green", "blue", "yellow"); 

foreach ($colors as $key =>  $value) {
    echo "Key is: $key  Value is: $value <br>";
}
?> 

متغیر $key حاوی کلید (اندیس) متناظر با هر المان آرایه می باشد.

Related posts