parsgreen.com
article

دستورات شرطی if و else در php

php-else-if

دستورات شرطی (Conditional Statment)، یکی از پرکاربردترین موارد در دنیای زبان های برنامه نویسی و از جمله در برنامه نویسی وب و php به شمار می روند، در یک تعریف ساده از دستورات شرطی، می توان گفت که با آنها وجود یا عدم شرطی را بررسی می کنیم و بر اساس مثبت یا منفی بودن پاسخ ارزیابی شرط، مطابق با خواست و نیازمان، کاری را انجام می دهیم؛ در دنیای واقعی نیز بارها شنیده ایم که مثلا گفته اند اگر خوب تمرین کنید، موفق می شوید یا اگر فلانی بیاید، به کوهنوردی خواهیم رفت و...، این نوع تعاریف در برنامه نویسی وب و به طور خاص در php با if و else و ترکیب آنها یعنی elseif به سیستم و در واقع به مفسر php تفهیم می شوند.

دستور شرطی if در php


درک نحوه کارکرد دستور if چندان سخت نیست، با if وجود یا عدم شرطی را بررسی می کنیم، مثلا اگر متغیری داشته باشیم با نام age و مقادیرش 20 باشد، حال بخواهیم بررسی کنیم که آیا متغیر age برابر 20 است یا خیر، به صورت ساده می نویسیم: اگر (if) متغیر age برابر با 20 باشد (رابطه true باشد)، محاسبه بین {} را انجام بده.
<?php
$age = 20;
if($age == 20){
echo "کاربر گرامی سن شما 20 سال است!";
}
?>
بر اساس مثال بالا، مقدار متغیر age برابر 20 تعریف شده، پس بررسی رابطه if درست (true) خواهد بود و دستور بین {} اجرا خواهد شد، حال در مثال زیر بررسی رابطه if مقادیر نادرست (false) خواهد داشت، چرا که سن کاربر 20 سال است، اما در ارزیابی گفته ایم که اگر سن او 20 سال نبود، محاسبه را انجام بدهد.
<?php
$age = 20;
if($age != 20){
echo "کاربر گرامی سن شما 20 سال نیست!";
}
?>
همانطور که در بحث پیشین (عملگرهای محاسبه و مقایسه در php) گفتیم، علامت == یعنی دو طرف رابطه برابر باشد و علامت =! یعنی دو طرف رابطه برابر نباشد.

دستور شرطی else در php


اکنون که با if آشنا شدیم، باید از خود بپرسیم اگر if درست (true) نشد آنوقت تکلیف چیست؟! یک برنامه نویس خوب باید حساب همه چیز را کرده باشد، این چیزی است که شکل پیشرفته آن را همان هوش مصنوعی می نامند، پس باید شرایط بعد از نادرست شدن رابطه if را هم تعریف کنیم، برای این کار از دستور شرطی else یا elseif استفاده می کنیم، ابتدا به else می پردازیم.
else در واقع جایگزینی برای if است، یعنی اگر رابطه if درست نباشد (false باشد)، آنگاه مقادیر بین {} در else اجرا می شود، به مثال زیر توجه کنید تا مسئله روشن شود.
<?php
$age = 20;
if($age != 20){
echo "کاربر گرامی سن شما 20 سال نیست!";
}
else{
echo "کاربر گرامی، به بخش 20 ساله ها خوش آمدید!!";
}
?>
به طور ساده، مثال بالا اینطور تفسیر می شود: در خط اول متغیر age برابر 20 تعریف شده است، آنگاه در دستور if اول، برابر نبودن age با 20 بررسی شده، اگر رابطه درست باشد (یعنی سن برابر 20 نباشد)، مقادیر بین {} در بررسی if اجرا می شود و نوبت به else نمی رسد، اما اگر سن برابر 20 سال باشد، پس رابطه if صحیح نیست (چون رابطه می گویید اگر age برابر 20 نباشد) و نوبت به اجرای دستور else است که پیام خوش آمد را برای کاربر 20 ساله نشان می دهد.
به مثالی دیگر توجه کنید.
<?php
$country = "Iran";
$state = "PersianGulf";
if($country == "Iran" && $state == "PersianGulf"){
echo "کاربر گرامی شما از کشور $country و منطقه $state هستید!";
}
else{
echo "کاربر گرامی لطفا نام کشور و منطقه خود را وارد نمائید!";
}
?>
کافی است کد بالا را در لوکال هاست آزمایش کنید تا نتیجه را ببینید.

دستور شرطی elseif در php


elseif ترکیب دیگری از if و else و در واقع بینابین آنها است، به فرض شاید بخواهیم قبل از خاتمه دادن به کدنویسی خود، چندین ارزیابی دیگر را نیز انجام دهیم، اینجا است که از elseif استفاده می کنیم، elseif با نادرست شدن رابطه if قبل از آن اجرا می شود و اگر مقدار آن false شود، مفسر php از آن صرفه نظر می کند و به ادامه کد می پردازد، مثال زیر روشن است.
<?php
$num = 1000;
$max = 2000;
if ($num > $max){
echo "متغیر num از max بزرگتر است!";
}
elseif($num == $max){
echo "متغیر num با max برابر است!";
}
else{
echo "متغیر num از max کوچکتر است!";
}
?>
همانطور که در کد بالا ملاحظه می کنید، بر اساس داده های تعریف شده، رابطه if و elseif نادرست خواهند بود و به ناچار بخش سوم یعنی else اجرا می شود، در مثال زیر کد بالا را تغییر داده ایم تا قسمت دوم یعنی elseif اجرا شود.
<?php
$num = 2000;
$max = 2000;
if ($num > $max){
echo "متغیر num از max بزرگتر است!";
}
elseif($num == $max){
echo "متغیر num با max برابر است!";
}
else{
echo "متغیر num از max کوچکتر است!";
}
?>
از elseif به هر تعداد که بخواهیم، بین if و else می توانیم استفاده کنیم، اما مفسر php به ترتیب، درست بودن رابطه آنها را بررسی و اگر یکی از آنها درست باشد، تنها آن را اجرا می کند.
sectionدسته بندی: آموزش مقدماتی » PHP
related مطالب بیشتر:
» توابع کار با آرایه در PHP - بخش سوم
» کار با switch و case در php
» توابع (Functions) در php
» آشنایی و کار با متغیر ها (Variables) در php
» حلقه for و while در php
commentنظرات (۵۶ یادداشت برای این مطلب ارسال شده است)
نویسنده: amirchermahini
زمان: ۱۳:۲۷:۱۵ - تاریخ: ۱۳۹۱/۱۲/۲۵
با سلام و عرض ادب و احترام
و باز هم تشکر بخاطر گرداوری این همه مطلب
واقعا تک و یه دونه هست تا اونجایی حدود دو سال تو اینترنتم ندیدم مطالب اموزشی اون هم این همه یک جا باشه واقعا ممنونم و دمتون گرم خیلی گرم یه سوال:
ایا من برای نوشتن php باید فایل نوشته شده را با پسوند php ذخیره کنم یا html من تازه با نوشتن کدهای html و css اشنا شده و کار میکنم به نظر شما استاد بزرگوار الان بعد از اون دو تا کدام یکی رو کار کنم:
php
java
mysql
ajax
به نظر شما کدوم رو شروع کنم برام راحت تر و کاربردی تره عزیز راستی ایا میتونم php و css و html همه رو توی یه فایل بنویسم و با فرمت html ذخیره و نتیجه کارم رو ببینم .
یا اگه نمیشه من چطور باید از php در html لینک ایجاد کنم در قسمت <head></head> که مانند استایل css که لینک میدیم بتونه فایل php رو فراخوانی کنه
با تقدیر و تشکر از جوابهای شما در خصوص سوالات قبلی واقعا ممنونم از راهنمایی های شما
پاسخ: 
سلام
ممنون از نظر لطف شما.
برای اجرای فایل های php، قبل از هر چیز نیاز به یک سرور یا سرور مجازی دارید که بحث آن در اینجا مقدور نیست، اما با فرض نصب بودن سرور مجازی در سیستم شما، کدهای php باید با پسوند php ذخیره شوند و اگر با این زبان آشنا باشید، می دانید که در کنار دستورات آن می توان از سایر موارد مانند تگ های html، css و javascript استفاده کرد. اما از این نظر که کدام یک را شروع کنید، توصیه ما این است از html شروع کنید و پس از کسب تجربه نسبی آن را با css ترکیب نمائید، سپس آشنایی نسبی با جاوا اسکریپت، در گام بعدی یکی از زبان های سمت سرور و پایگاه داده آن، مانند php و پایگاه داده mysql، البته ابتدا باید دستورات مقدماتی php را یاد بیگرید و وقتی که کمی حرفه ای تر شدید با پایگاه داده نیز کار کنید.
نویسنده: amirchermahini
زمان: ۱۵:۲۷:۰۹ - تاریخ: ۱۳۹۱/۱۲/۲۵
با سلام و عرض ادب و احترام حضور برادر بزرگوارم
ممنونم از پاسخ ها و راهنماییهای شما استاد عزیزم
حقیر مدتی است با نوشت به زبان html و css اشنا شدم و تقریبا تراز کردن یک قالب را با css و طراحی ان با html و فتوشاپ رو حدود یک سالی میشه که کار میکنم
و واقعا ممنونم که بعنوان زبان بعدی شما جاوا رو پیشنهاد دادین و یقینا این بهترین راه هستش
اما در خصوص شک شما در مورد سرور مجازی من xampp رو طبق اموزش شما در اولین مرحله اموزش نصب کردم و الان هم کدها رو در پوشه مربوطه ذخیره میکنم و باز هم میشن
سوال من اینه که ایا میشه همه کدها رو در فایل ذخیره کرد و اگه میشه با چه پسوندی ذخیره کنم php یا html
البته از الان به بعد دیگه بهش نیازی ندارم و بنا به راهنمایی شما میرم سراغ جاوا و اموزش جاوا شما
من فکر میکردم برای جاوا اول باید php رو یاد بگیرم اما الان که نظر شما اینه اول از اون شروع میکنم
با تشکر از الطاف و راهنماییهای شما
در قسمت جاوا از این ببعد در خدمت شما هستم و امیدوارم با راهنماییهای شما بتونم اون بخش رو هرچه زود تر اموزش ببینم
با ارزوی توفیق واخر هفته پربار برای شما وخانواده محترم
پاسخ: 
سلام
پسوند php برای حالتی است که فایل شما دستورات php درون خود دارد، برای سایر موارد مانند html و css و... استفاده از پسوند html کفایت می کند.
نویسنده: nima
زمان: ۲۰:۳۱:۳۰ - تاریخ: ۱۳۹۲/۰۱/۰۲
مثل همیشه عالی بود
نویسنده: مهدی
زمان: ۱۶:۲۶:۳۴ - تاریخ: ۱۳۹۲/۰۱/۰۳
با سلام
چگونه میشود دو شرط برسسی شود و اگر دو شرط هم تایید شد ادامه یابد (else)
پاسخ: 
سلام
منظور سوالتان دقیقا مشخص نیست، اما به نظر می رسد می خواهید دو پارامتر را در یک شرط if بررسی کنید، برای این کار کافی است از علائمی مانند && (یا ||) استفاده کنید، به طور مثال در کد زیر اگر متغیر فرضی a و b هر دو برابر با TRUE باشند، کد داخل {} در دستور شرطی if اجرا می شود، در غیر این صورت کد قسمت elseif یا else اجرا می شود:
<?php
$a = TRUE;
$b = FALSE;
if($a == TRUE && $b == TRUE){
echo 'a & b = true!';
}
elseif($a == TRUE){
echo 'a = true!';
}
elseif($b == TRUE){
echo 'b = true!';
}
else{
echo 'a & b = fase!';
}
?>
نویسنده: مهدی
زمان: ۱۶:۵۷:۳۹ - تاریخ: ۱۳۹۲/۰۱/۰۳
میخواهم شرط به این گونه باشد که اگر
$carac<0 و $number>=$ab271[1]
هر دو همزمان برقرار باشند شرط اجرا شود ولی اگر حتی یکی هم برقرار نبود اجرا نشود
پاسخ: 
<?php
if($carac < 0 && $number >= $ab271[1]){
echo 'true!';
}
else{
echo 'false';
}
?>
نویسنده: مهدی
زمان: ۱۸:۱۹:۳۹ - تاریخ: ۱۳۹۲/۰۱/۰۳
مرسی خیلی به درد بخور بود
نویسنده: roya
زمان: ۱۳:۲۹:۴۴ - تاریخ: ۱۳۹۲/۰۱/۲۸
سلام برنامه ای پسورد بگیره بعد داخل همین برنامه بتونیم پسورد رو عوض کنیم از ساده ترین راه حل میخوام نمیدونم چه طوری مرسی اگه میشه کمکم کن
پاسخ: 
سلام
سوالتان واضح و منظورتان مشخص نیست، اگر منظور این است که سیستم تعویض پسورد بسازید، باید با PHP و MySQL آشنا باشید، سپس در برنامه خود و در یک فرم HTML سه فیلد پسورد فعلی، پسورد جدید و تکرار پسورد جدید را بسازید، هنگام ارسال اطلاعات این فرم، ابتدا صحیح بودن پسورد فعلی را (با تطبیق آن با دیتابیس) بررسی کنید، سپس برابری پسورد جدید با تکرار آن را چک کنید و در نهایت مقادیر جدید را در دیتابیس جایگزین نمائید.
البته ملاحظه می کنید که تمام این مراحل را باید کدنویسی کنید، کدی آماده برای آن در اختیار نداریم.
نویسنده: محمد مهدی
زمان: ۲۱:۳۹:۵۷ - تاریخ: ۱۳۹۲/۰۲/۲۷
سلام if های تو در تو که باید بیش از چندین بررسی انجام شود چگونه است؟
یعنی اخرین else نباید if داشته باشد درسته؟
<?php
$num = 2000;
if ($num > $max)
{
echo "1";
}
elseif($num == $max)
{
echo "2";
}
elseif($num == $max)
{
echo "3";
}
elseif($num == $max)
{
echo "4";
}
else
{
echo "5";
}
?>
پاسخ: 
سلام
برای درک نحوه به کار بردن صحیح if و elseif کافی است به معنی آنها توجه کنیم:
if = اگر
elseif = در غیر این صورت اگر
else = در غیر این صورت
با این حساب:
اگر (num بزرگتر از max باشد){
چاپ عدد 1
}
در غیر این صورت اگر(num کوچکتر از max باشد){
چاپ عدد 2
}
در غیر این صورت{
چاپ عدد 3 //num با max مساوی است
}
و همین تئوری در عمل:
if($num > $max){
echo 1;
}
elseif($num < $max){
echo 2;
}
else{
echo 3;
}
در ضمن نباید از دستورات شرطی elseif به تعداد بیشتر از یک اما با شرط یکسان استفاده کنید، یعنی این حالت اشتباه است:
elseif($num == $max)
{
echo "2";
}
elseif($num == $max)
{
echo "3";
}
elseif($num == $max)
{
echo "4";
}
چون با اجرای اولین شرط نوبت به موارد بعدی نمی رسد و با عدم اجرای شرط، چون شرط ها بین همه دستورات مشترک هستند، هیچ کدام اجرا نمی شوند! و دستور else اجرا می شود، دستورات elseif متعدد زمانی کاربرد دارند که شرط آنها یکسان نباشد.
نویسنده: elena
زمان: ۰۲:۳۹:۱۷ - تاریخ: ۱۳۹۲/۰۴/۰۱
سلام، می خوام یه برنامه بنویسم که نام کاربری و رمز عبور دریافت کنه بعد یه برنامه دیگه میخوام که وقتی فرم عضویت کامل پر شد پیغام خوش آمد بده و در غیر اینصورت error بده
خواهشا سریع تر کمکم کنید
مرسی
پاسخ: 
سلام
لطفا از طرح سوالات و مشکلات به صورت کلی اجتناب کنید! نوشتن یک برنامه نیاز به دانستن مقدماتی دارد، مشخص نیست تا چه میزان با مقدمات کار آشنا هستید و خودتان تا چه مقدار از برنامه را نوشته اید؟!
نویسنده: مهدی
زمان: ۲۳:۰۶:۵۸ - تاریخ: ۱۳۹۲/۰۴/۰۳
با سلام
آیا میشه در دستورات if تو در تو استفاده کرد؟ یعنی شرط if خودش if باشه؟
یه چیزی مثل این:
<?
if(if($age = '20'){$age == '20';}else{$age == '10';}){
echo $age;
}
?>
پاسخ: 
سلام
به این صورت خیر! کد شما خطای syntax دارد! اما به طور مثال به روش زیر می شود:
<?php
if(!empty($age)){
if($age == '20'){
$age = '20';
}
else{
$age = '10';
}
echo $age;
}
?>
نویسنده: علیرضا
زمان: ۰۸:۱۱:۰۵ - تاریخ: ۱۳۹۲/۰۴/۱۲
با سلام من میخوام در php اگر متغیر
$qwe 
برابر با 2 شد.
در صفحه html که درست کردم یک عکس و اگر 1 شد عکس دیگری قرار بگیرد. باید چیکار کنم؟ اصل سوالم این جاست چطوری میتونم در شرطی که در php استفاده کردم رو بیارم؟ خیلی ممنون.
اگر سوالم به موضوع مربوط نمیشه و حذف یا انتقال پیدا کرد حتما از طریق ایمیل بهم اطلاع بدید.
پاسخ: 
سلام
این کار را به چند روش می توان انجام داد، به طور مثال اگر متغیر مورد نظر مقادیر 1 بود، نام تصویر را در یک متغیر دیگر مقدار دهی می کنیم:
<?php
$qwe = 1;
$image = NULL;
if($qwe == 1){
$image = 'your-image-1.jpg';
}
elseif($qwe == 2){
$image = 'your-image-2.jpg';
}
?>
<img src="img/<?php echo $image ?>" alt="img">
مسلم است که فرمت فایل شما باید PHP باشد تا کدها قابل اجرا باشند.
نویسنده: علیرضا
زمان: ۰۵:۱۴:۲۹ - تاریخ: ۱۳۹۲/۰۴/۱۴
این کاری که گفتید انجام میدم اما نمیشه. اگه یه راه دیگه هست بهم بگید.
ممنون خدا خیرتون بده.
پاسخ: 
راه گفته شده اشتباه نیست! باید ببینید کجای کار را اشتباه انجام می دهید، در صورت تمایل فایل را با ذکر جزئیات به آدرس ایمیل ما ارسال کنید تا بررسی گردد.
نویسنده: امیرحسین
زمان: ۰۹:۳۹:۲۴ - تاریخ: ۱۳۹۲/۰۵/۱۵
سلام عزیز من تازه تو کار پی اچ پی رفتم یه فرم ساختم می خوام وقتی توش تایپ کنی amir پایینش امیر خوش آمدید رو نمایش بده ولی جز amir تایپ کنی هیچی نیست رو پایینش نمایش بده ببینید کجا اشتباه کردم؟
<form action="" method="post">
<input name="amir" type="text" />
<?php
if ($name == amir) {
echo "امیر خوش آمدید";
}
else "هیچی نیست";
?>
<input type="submit" />
</form>
پاسخ: 
سلام
اصلاح شده کد شما:
<form action="" method="post">
<input name="user_name" type="text" />
<?php
//دریافت مقادیر از فیلد فرم
@$name = $_POST['user_name'];
if ($name == 'amir'){
echo "امیر خوش آمدید";
}
else{
echo "هیچی نیست";
}
?>
<input type="submit" value="ارسال" />
</form>
نویسنده: امیرحسین
زمان: ۱۷:۰۳:۲۷ - تاریخ: ۱۳۹۲/۰۵/۱۵
خیلی ممنون از لطف شما
نویسنده: امیرحسین
زمان: ۱۷:۳۲:۰۰ - تاریخ: ۱۳۹۲/۰۵/۱۵
خیلی کمکم کردین ممنون از آموزش های خوبتون
من با خودم گفتم پی اچ پی رو من نمیتونم یاد بگیرم گفتم یه بار بخونم ببینم چی میشه شما هم که خیلی واضع توضیح میدین و زود درک کننده هست خیلی ممنون امیدوارم همیشه موفق باشی عزیز به درود
paged صفحه 1 از 4




more لطفا دقت کنید که یادداشت های زیر منتشر نشده و حذف خواهند شد:
- یادداشت های خارج از موضوع این مطلب.
- سوالات کلی، غیر ضروری و مشکلاتی که هیچ تلاشی برای رفع آن نکرده باشید.
- نظرات حاوی کدها و اسکریپت های خیلی طولانی (به طور مثال کد کامل قالب وبلاگ).

2 × 3
 refresh
آگهی
seonab.com
طراحی نرم افزار اندروید
رنگین کمان عکس
Ranginkamaan.com

آرشیو عکس های باکیفیت با موضوعات متنوع...