فقط واتساپ ۰۹۱۵۷۲۳۲۳۹۸

آموزش کامل دستورات شرطی در php

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

 

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

 

 

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

بطور کلی ما از دستورات شرطی در php برای چک کردن اطلاعات استفاده میکنم. مثلا چک میکنیم که اگر فلان داده های ما برابر با فلان حالت بود این اقدامات x انجام شود در غیر اینصورت اقدامات y انجام شود. البته دستورات شرطی در php حالت های مختلفی هم دارد که میتوانیم شرط های تودرتو هم داشته باشیم برای درک بهتر موضوع پیشنهاد میکنم ویدیو آموزشی ابتدای صفحه را ببینید.

 

انواع شرط در php

انواع شرط در php دستورات مختلفی دارد که متناسب با نیاز برنامه نویس دستور مناسب باید انتخاب شود. عملگر شرطی در php، به این منظور استفاده می شود که یک برنامه کامپیوتری را قادر سازد تا در شرایط خاص با در نظر عوامل تعیین شده، تصمیم گیری درستی داشته باشد. روش های مختلفی برای تعریف شرط ها وجود دارد که انتخاب بهترین نوع دستور که کمترین پیچیدگی را داشته باشد، برعهده برنامه نویس است. برای اینکه بتوانید دستورات شرطی را به بهترین شکل استفاده نمایید ابتدا باید با تمامی این دستورات آشنا باشید. از جمله مهم ترین دستورات شرط گذاری در php، دستورات if, else if, switch …case, را می توان نام برد.

 

شرط if در php

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

درکد بالا متغیر بانام $name تعریف شده سپس با شرط if بررسی کردیم که آیا مقدار متغیر $name برابر با “reza” هست؟ در صورت برقرار بودن شرط (درست بودن شرط) دستورات داخل آکولاد اجرا میشود داخل اکولاد هم صرفا گفتیم مقدار “hello world” چاپ شود و قائدتا این اتفاق می افتد.


توجه داشته باشید در صورتی شرط برقرار نبود مثلا مقدار متغیر $name برابر با مقدار “reza” نباشد هیچ اتفاقی نمی افتد و دستوری اجرا نمیشود. (در ادامه یادمیگیرید چطور دستورات مورد نظر را درصورت برقرارنبودن شرط مشخص کنید)

 

 

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

دستور if در php

دستور شرطی if در php همراه با else به این صورت است که که چندین جالت برای یک شرط وجود دارد و تمامی این حالت ها باید برای هر متغیری بررسی می شود. مثال زیر این حالت دستورات شرطی را نشان می دهد.

 

نوع دیگری از دستورات if بصورت else if است. این نوع دستورات در شرط گذاری در php ، به نوعی معنای در غیر اینصورت دارد. در حالتی که چندین شرط بر روی یک مولفه بررسی می شود. شکل ای دستور به صورت زیر است:

 

در این شکل دو دستور شرطی اول مقدار نادرست دارند و شرط سوم مقدار صحیح داشته و در نتیجه دستور echo داخل این شرط اجرا می شود.

یک روش دیگر نیز برای دستورات شرطی وجود دارد که بجای اینکه با براکت محدوده شرط را تعیین کنیم از دستور endif در پایان جمله شرطی استفاده می کنیم.

 

 

دستور switch در php

این دستور عملکردی مشابه دستور else if دارد و به نوعی یک روش کوتاهتر برای بیان چنین شرط های چند مقداری محسوب می شود. در دستور switch مقادیر مختلف در قسمت کیس ها بررسی می شوند و با دستور break عملیات یک شرط خاتمه می یابد. دستور زیر مثالی از این نوع شرط گذاری در php می باشد:

 

 

 

عملگرهای سه گانه ternary

دستورات بالا را می توان بصورت خلاصه نیز نوشت برای این کار به جای if از علامت ؟ استفاده می شود و به جای else  از علامت : استفاده می کنیم. به این روش خلاصه نویسی با عملگرهای سه گانه ternary گفته می شود. فرمت کلی ساخت این نوع دستور برای شرط در php به این صورت است:

condition ? yes : no

در صورتی که شرط ما برقرار باشد قسمت اول یعنی yes اتفاق می افتد در غیر اینصورت قسمت دوم عبارت یعنی no اتفاق می افتد. برای درک بهتر به مثال زیر توجه کنید:

 

 

می توان از این روش خلاصه نویسی برای دستورات else..if هم استفاده کرد. بطور مثال:

 

 

 

عملگر Null coalescing

عملگر Null coalescing یک عملگر از نوع ternary برای شرط گذاری در php است که در php7 معرفی شده است ساختار این عملگر به صورت زیر است:

yes??no

روش کار این عملگر به این صورت است که قسمت صحیح شرط در ابتدا آمده بعد از با ؟؟ قسمت else در سمت راست قرار می گیرد. به مثال زیر توجه کنید:

 

 

شکل ساده شده این کد با عملگر Null coalescing به صورت زیر می باشد:

 

 

همچنین می توان از چندین عملگر Null coalescing به صورت دنباله ای از شرط ها استفاده کرد که در مثال زیر نشان داده شده است:

 

 

در کد زیر بصورت خلاصه نویسی با استفاده از عملگر Null coalescing به این شکل می باشد:

 

 

 

عملگر Spaceship

این عملگر نیز برای تعریف شرط گذاری در php در نسخه  php7 قرار دارد. خروجی حاصل از این عملگر مقادیر 0 و 1 و 1- به خود می گیرد. زمانی مقدار خروجی برابر صفر می شود که دو مقدار مقایسه شده باهم برابر شوند. مقدار 1 برای زمانی است که طرف مقدار طرف چپ بزرگتر باشد و 1- برای زمانی است که مقدار سمت راست مقایسه بزرگتر باشد به مثال زیر توجه کنید:

 

 

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

 

 

به پایان این پست رسیدیم امیدوارم به یک درک کلی از دستورات شرطی در php رسیده باشه پیشنهاد میکنم برای درک کامل شرط ها در php حتما ویدیوی ابتدای صفحه را ببینید و اگر سوال یا ابهامی در این زمینه داشتید داشتید حتما در قسمت کامنت ها بپرسید.

 

کاربرد دستورات شرطی برای مدیریت استثناها

یکی از مهم ترین کاربرددهای دستورات شرطی در php ، تشخیص و کنترل خطاهای اسکریپت ها است. چنانچه در زمان اجرای یک اسکریپت خطایی رخ دهد، با کمک استثناها یا همان exception می توانیم این خطا را مدیریت کنیم و روند اجرای برنامه را تغییر دهیم.  این تغییر می تواند یکی از سه حالت زیر باشد:

  • اجرای کد به ابتدای آخرین وضعیت ذخیره شد برگردد.
  • کل برنامه متوقف شود.
  • اجرای برنامه از یک قسمت تعیین شده، مجددا از سر گرفته شود.

در ادامه یک مثال ساده از نحوه استفاده از استثتاها برای مدیریت خطاها را بررسی می کنیم.

در این مثال مقدار متغیر number بررسی می شود. حالت خطا زمانی است که این متغیر مقدار 1 داشته باشد. برای استفاده از استثنا، از کلاس throw استفاده کرده ایم. روند کار به این صورت است که اگر شرط if درست باشد؛ پیغام خطا نمایش داده می شود و این پیغام به صورت زیر است.

 

حال برای این که بتوانیم وضعیت استثنا را مدیریت کنیم باید کد ما مولفه های زیر را داشته باشد:

  • try: تابع شامل خطا باید در بلوک try قرار گیرد تا در صورت عدم بروز خطا، بدون مشکل اجرا شود.
  • throw: برای راه اندازی خطا کاربرد دارد و باید حتما یک catch داشته باشد.
  • catch: به وضعیت خطا رسیدگی می کند و پیغام خطا را نشان می دهد.

مثال زیر فرم کامل این نوع دستور را نشان می دهد:

 

خروحی این مثال به فرم زیر است:

5 دیدگاه دربارهٔ «آموزش کامل دستورات شرطی در php»

علی رضا گفت:

سلام قطعه کد زیر همش طرف نادرست را اجرا می کند مشکل چی است
$a1 = htmlspecialchars($_POST [‘a1’]) ;
$password10 = htmlspecialchars($_POST [‘password10’]) ;

$password2 = file_get_contents (“$a1\passwordddd $a1.txt”) ;
$password10 ; $password2 ;
if ($password10 == $password2 ) {
echo “سلام” ;

} else {
echo “رمز اشتباه است” ;
}

Soheilr گفت:

سلام مرسی از آموزش خوبتون
من الان یه یه مشکل دارم
من یه سایت دارم . بعد واسه صفحه محصول تکی با php کد نوشتم که مثلا رنگ این محصول زرده که اینطوریه. رنگ : زرد . الان یه مشکلی دارم.
وقتی تو وردپرس رنگشو وارد نمیکنم ،‌بازم نشون میده ولی اینطوریه. رنگ :
میخوام کاری کنم که نشون نده اگه فیلد رنگو پر نکرده بودم… میشه کمک کنید ؟ کد پی اچ پی هم که زدم اینه :

add_action(‘woocommerce_before_add_to_cart_form’ , ‘color’);

function color () {

$color = get_post_meta (get_the_id(), ‘color’,true) . ‘ ‘ ;

if(!empty ($color)) {
echo ‘ ‘;
echo ‘رنگ : ‘ .”;
echo ”;

echo $color ;

}
}

رضا حیدری گفت:

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

Soheilr گفت:

با سلام و سپاس از پاسخ شما.
حقیقتا من پلاگین cmb2 رو نصب کردم
بعد یه کاستوم فیلد ساختم واسه محصولات که شامل رنگ اینا هست
بعد هم این کدی که گذاشته بودم برای شما رو تو function.php گذاشتم
یعنی کلا یبار تعریف کردم . بعد من تاحالا php کار نکردم راستش
فقط واسه اینکار php زدم …
اگه میشه راهنمایی کنید اگه هم نه که باز هم تشکر از شما.

رضا حیدری گفت:

کدی که زدی همونطور که گفتم درسته و مشکلی نداره
شاید در بخش دیگه ای مشکل وجود داشته باشه.
داریم دوره ای جدید و حرفه ای برای طراحی قالب وردپرس تولید میکنیم بخشی از کار دقیقا مشابه کار شماست یعنی استفاده از cmb2 و ذخیره و دریافت اطلاعات داریم.
توی واتساپ در ارتباط باشید اون جلسه رو که ضبط کردم رایگان خدمتون بدم تا کارتون راه بیوفته

پاسخ دادن به Soheilr لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

ورود | ثبت نام
شماره موبایل یا ایمیل خود را وارد کنید
برگشت
کد تایید را وارد کنید
کد تایید برای شماره موبایل شما ارسال گردید
ارسال مجدد کد تا دیگر
برگشت
رمز عبور را وارد کنید
رمز عبور حساب کاربری خود را وارد کنید
برگشت
رمز عبور را وارد کنید
رمز عبور حساب کاربری خود را وارد کنید
برگشت
درخواست بازیابی رمز عبور
لطفاً پست الکترونیک یا موبایل خود را وارد نمایید
برگشت
کد تایید را وارد کنید
کد تایید برای شماره موبایل شما ارسال گردید
ارسال مجدد کد تا دیگر
ایمیل بازیابی ارسال شد!
لطفاً به صندوق الکترونیکی خود مراجعه کرده و بر روی لینک ارسال شده کلیک نمایید.
تغییر رمز عبور
یک رمز عبور برای اکانت خود تنظیم کنید
تغییر رمز با موفقیت انجام شد