آموزش کار با PHP - قسمت سوم
این مقاله توسط مجتبی دشتی نژاد نوشته شده است
هر گونه کپی برداری بدون داشتن اجازه نامه کتبی از نویسنده آن، ممنوع می باشد
ساختارهای کنترلی
همانند تمامی زبانهای برنامه نویسی، PHP هم دارای عبارات شرطی، حقله ها و غیره می
باشد. در این قسمت از مقاله، با این نوع ساختارها آشنا می شویم.
عبارات شرطی
عبارات شرطی در PHP، به دو صورت زیر می تواند ساخته شود:
- if
- switch
عبارت شرطی if
ساختار عبارت شرطی if (که به معنای اگر می باشد)، به صورت زیر می باشد:
if (condition) {
statements;
}
اگر عبارت داخل پرانتز، یک عبارت صحیح (True) باشد، عبارات درون آکولاد به اجرا در خواهند آمد. مثال:
<?php
$totalPrice = 100000;
if ($totalPrice >= 70000) {
$free = 0.1 * $totalPrice;
$lastPrice = $totalPrice - $free;
echo("$lastPrice");
}
?>
این مثال مقدار متغیر $totalPrice را گرفته و چنان چه مقدار آن بیشتر از 70000 بود،
عبارات درون شرط if را اجرا می کند. کار آن این است که 10 درصد $totalPrice را حساب
کرده و آن را از $totalPrice کم کرده و درون متغیر $lastPrice قرار می دهد. سپس
مقدار نهایی را به کاربر نشان می دهد. از آنجا که مقدار $totalPrice در ابتدای
اسکریپت برابر 100000 می باشد، در نتیجه شرط برقرار بوده و عبارات درون آن پردازش
می شوند. خروجی این مثال 90000 خواهد بود (بعدا یاد خواهید گرفت که چگونه اطلاعات
را از کاربر جمع آوری کرده و بر روی داده های وارد شده توسط کاربر، عملیات انجام
دهید).
کامل کردن عبارت شرطی if به وسیله elseif
تا به اینجای کار، در صورتی که شرط درست بود، عبارات اجرا می شدند. حال می خواهیم
بگوییم به PHP بگوییم که اگر شرط نادرست باشد، چه کار باید بکند. برای این کار می
توانیم از elseif و else استفاده کنیم. به مثال زیر توجه کنید:
<?php
$age = 20;
if ($age < 13 && $age > 0) {
echo("Baby");
} elseif ($age >=13 && $age < 18) {
echo("Teenager");
} elseif ($age >= 18 && $age <= 25) {
echo("Young");
} else {
echo("Your age is greater than 25");
}
?>
در این مثال، متغیر $age برابر 20 می باشد. به وسیله شرطها ما عبارات مختلفی را به کاربر نشان می دهیم:
- اگر $age مابین 0 و 13 بود، عبارت Baby به نمایش در می آید.
- اگر $age مابین 13 و 18 بود، عبارت Teenager به نمایش در می آید.
- اگر $age مابین 18 و 25 بود، عبارت Young به نمایش در می آید.
- اگر هیچ یک از شرطهای بالا برقرار نبود، عبارت Your age is greater than 25 به نمایش در خواهد آمد.
خروجی این مثال Young می باشد.
در این مثال ما از عملگرهایی نظیر && استفاده کردیم. به این عملگرها، در حقیقت
عملگرهای منطقی می گویند. در زیر با این عملگرها آشنا می شویم.
عملگرهای عددی
این عملگرها، همان عملگرهای درون ریاضی هستند:
- عملگر * که به وسیله آن می توان اعداد را در یکدیگر ضرب نمود
- عملگر + که به وسیله آن می توان اعداد را با یکدیگر جمع نمود
- عملگر – که به وسیله آن می توان اعداد را از یکدیگر تفریق نمود
- عملگر / که به وسیله آن می توان اعداد را بر یکدیگر تقسیم نمود
- عملگر % که در حقیقت، همان عملگر mod در ریاضیات می باشد و باقی مانده یک تقسیم را بدست می آورد. به عنوان مثال 5%2 برابر 1 خواهد بود.
عملگر انتساب و تساوی
در قبل تر مشاهده نمودید که برای انتساب یک مقدار به یک متغیر، از علامت = استفاده
کردیم. حال فرض کنید که می خواهید به وسیله شرط if بررسی نمایید که اگر مقدار متغیر
$name برابر Mojtaba بود، عبارت Hello Mojtaba را بر روی مرورگر به نمایش در آورد.
ممکن است برای این کار شما از کد زیر استفاده نمایید:
<?php
$name = "Sara";
if ($name = "Mojtaba") {
echo("Hello Mojtaba");
} else {
echo("You are not Mojtaba");
}
?>
این اسکریپت به درستی کار نخواهد کرد. از آنجا که در ابتدای اسکریپت ما مقدار Sara را به متغیر $name داده ایم، و در پایین تر آن، شما به وسیله شرط if می خواهید بررسی کنید که آیا مقدار متغیر $name برابر با Mojtaba هست یا نه، این اسکریپت می بایست عبارت You are not Mojtaba را نشان دهد. چرا که مقدار متغیر $name برابر Mojtaba نبوده و در حقیقت شرط برقرار نمی باشد. اما در واقع این گونه نیست. چرا که برای مقایسه یک متغیر با یک مقدار، می بایست از عملگر == و نه = استفاده کنید. در اسکریپت بالا، در حقیقت درون شرط، شما مقدار Mojtaba را به متغیر $name نسبت داده اید و از آنجا که دیگر شرطی وجود ندارد، یعنی به نوعی شرط درست می باشد، مقدار Hello Mojtaba به نمایش در خواهد آمد. اسکریپت بالا، به صورت زیر صحیح می باشد.
<?php
$name = "Sara";
if ($name == "Mojtaba") {
echo("Hello Mojtaba");
} else {
echo("You are not Mojtaba");
}
?>
عبارت شرطی switch
ساختار این نوع شرط به صورت زیر است:
switch (expression) {
case value1:
statements;
break;
case value2:
statements;
break;
default:
statements;
}
این نوع شرط مقدار expression را مورد بررسی قرار داده و مقدار آن را با مقدارهای value1 و value2 و ... می سنجد و در صورت درستی هر یک از آنها، statements به اجرا در خواهند آمد. عبارت break هم سبب می شود که مابقی عبارات مورد پردازش قرار داده نشوند. برای درک بیشتر به مثال زیر توجه کنید:
<?php
$s = "Male";
switch ($s) {
case "Male":
echo("Man");
break;
case "Female":
echo("Woman");
break;
}
?>
حلقه ها
حلقه ها سبب اجرای یک بلاک کد به تعداد دفعات معینی می شود. یکی از نمونه های
کاربرد حلقه ها، برای نمایش رکوردهای یک پایگاه داده می باشد. حلقه ها سه نوع اند:
- حلقه while
- حلقه do…while
- حلقه for
حلقه while
حلقه while تا زمانی که شرط برقرار باشد اجرا می شود. ساختار این شرط به صورت زیر
می باشد:
while (condition) {
statements;
}
برای مثال برای چاپ اعداد 1 تا 10، می توانیم از حلقه زیر استفاده کنیم:
<?php
$i = 1;
while ($i <= 10) {
echo("$i<br>");
$i++;
}
?>
حلقه do…while
حلقه do…while دقیقا مشابه حلقه while می باشد، با این تفاوت که در حلقه های while،
شرط در ابتدای هر حلقه تست می شود، اما در حلقه های do…while، شرط در انتهای هر
حلقه. با این حساب، حلقه های do…while، حتی اگر شرط آن هم غلط (False) باشد، حداقل
یک بار اجرا خواهند شد. ساختار این حلقه به صورت زیر است:
do {
statements;
} while (condition);
به عنوان مثال، برای چاپ اعداد 1 تا 10، می توانیم از حلقه زیر استفاده کنیم:
<?php
$i = 1;
do {
echo("$i<br>");
$i++;
} while ($i <= 10);
?>
حلقه for
حلقه for نوعی دیگر از انواع حلقه می باشد. بر خلاف حلقه while که تا ناصحیح شدن شرط حلقه، ادامه پیدا می کرد، این حلقه برای تعداد دفعات مشخص تکرار می شود. ساختار این نوع حلقه به صورت زیر می باشد:
for (variable assignment; test expression; variable increment) {
statements;
}
در پارامتر اولیه (variable assignment)، یک مقدار را به یک متغیر نسبت می دهیم. پارامتر دوم (test expression) عبارت شرطی ما می باشد و پارامتر سوم (variable increment)، یک مقدار را به مقدار اولیه متغیر (variable) افزایش می کند. به عنوان مثال برای چاپ اعداد 1 تا 100، می توانیم از کد زیر استفاده کنیم:
<?php
for ($i=1; $i<=100; $i++) {
echo("$i");
echo("<br>");
}
?>
مثالی دیگر: حال می خواهیم اعداد اول بین 1 تا 100 را چاپ کنیم. برای این کار از تلفیق ساختار حلقه for و ساختار شرطی if استفاده می کنیم. البته ممکن است اگر عدد 100 را به مقدار بالاتری (مثلا 1000000) افزایش دهیم، دیگر اسکریپت به درستی کار نکند و در بین آن اعداد، بعضی اعداد غیر اول هم پدیدار شوند.
<?php
for ($i=1; $i<=100; $i++) {
if (($i==1) || ($i==2) || ($i==3) || ($i==5) || ($i==7)) {
echo("$i");
echo("<br>");
} elseif (($i%2!=0) && ($i%3!=0) && ($i%5!=0) && ($i%7!=0)) {
echo("$i");
echo("<br>");
}
}
?>
توابع
توابع بیشتر برای برنامه نویسی ماژولار استفاده می شود و به وسیله آن، رفع اشکال
بهتر انجام می گردد. برای درک بهتر تابع، به تابع ریاضی زیر که در دوره راهنمایی با
آن آشنا شدید، نگاهی بیاندازید:
y = x + 4
حال اگر یک ورودی را به x بدهیم، یک خروجی برای y به دست می آوریم. این ورودیها را به نام پارامتر یا آرگومان (Argument) می شناسند. برای تعریف یک تابع، از کلمه کلیدی function استفاده می کنیم.
function FunctionName(parameters) {
statements;
}
به عنوان مثال، همان تابع ریاضی بالا را در نظر بگیرید. اسم این تابع را مثلا Math می گذاریم. این تابع به صورت زیر در می آید:
<?php
function Math($x) {
$y = $x + 4;
echo("$y");
}
?>
تا به اینجای کار ما فقط تابع را تعریف کردیم. حال می خواهیم به عنوان مثال، عدد 5 را به عنوان ورودی به تابع بدهیم. برای این کار، نام تابع را نوشته و آرگومان مورد نظر خود را درون پرانتزها می نویسیم:
Math(5);
برای مثال، خروجی کد زیر 9 خواهد بود:
<?php
function Math($x) {
$y = $x + 4;
echo("$y");
}
Math(5);
?>









