-
August 4th, 2017, 12:47
#1
کدوم حالت درست تره؟
سلام بر همه اساتید و دوستان
من یه کار رو به چند شکل کدشو میگم و اساتید با دلیل بگن کدوم حالت صحیح تر هست.
کد PHP:
$var = get_option('option_name');
if(!$var) return;
// Continue the code
کد PHP:
$var = get_option('option_name');
if($var) :
// Continue the code
endif;
کد PHP:
$var = get_option('option_name');
if(!$var) :
exit();
else :
// Continue the code
endif;
پیشاپیش تشکر بابت نظراتی که خواهید داد.
ولادت آقا موسی الرضا هم به همه بچه های انجمن تبریک میگم.
موفق باشید
-
-
August 4th, 2017 12:47
# ADS
-
August 4th, 2017, 14:19
#2
عضو جدید
پاسخ : کدوم حالت درست تره؟
سلام
به نظرم گزینه اول مناسب تر باشه.
به طور کلی وقتی بخواهیم یک یا چند شرکت رو چک کنیم در ابتدا شرط هایی که نتیجه نادرست هستند رو چک میکنیم و از ادامه کد خارج میشیم
-
تعداد تشکر ها از parswebdesign به دلیل پست مفید
-
August 5th, 2017, 22:04
#3
پاسخ : کدوم حالت درست تره؟

نوشته اصلی توسط
parswebdesign
سلام
به نظرم گزینه اول مناسب تر باشه.
به طور کلی وقتی بخواهیم یک یا چند شرکت رو چک کنیم در ابتدا شرط هایی که نتیجه نادرست هستند رو چک میکنیم و از ادامه کد خارج میشیم
تشکر بابت نظری که دادید.

نوشته اصلی توسط
mehran-b
سلام بر همه اساتید و دوستان
من یه کار رو به چند شکل کدشو میگم و اساتید با دلیل بگن کدوم حالت صحیح تر هست.
کد PHP:
$var = get_option('option_name');
if(!$var) return;
// Continue the code
کد PHP:
$var = get_option('option_name');
if($var) :
// Continue the code
endif;
کد PHP:
$var = get_option('option_name');
if(!$var) :
exit();
else :
// Continue the code
endif;
پیشاپیش تشکر بابت نظراتی که خواهید داد.
ولادت آقا موسی الرضا هم به همه بچه های انجمن تبریک میگم.
موفق باشید
سایر اساتید نظری ندارند؟
-
-
August 5th, 2017, 22:27
#4
عضو انجمن
پاسخ : کدوم حالت درست تره؟
سلام
من روش دوم رو پیشنهاد میکنم چون به نظرم تا زمانی که دلیل منطقی برای دستی پایان دادن کد نباشه نیاز هم نیست کد رو حالا چه با return یا چه با exit پایان بدید.
اصولاً وقتی بخش Continue the code که کامنت کردید کد هاش تموم و اجرا بشه php خودش کار رو تموم شده می دونه و نیاز به دستی exit کردن کد نیست.
مگر در مواردی که به نظرم بدونید که ممکنه حلقه بی نهایت (Infinite Loop) اتفاق بیفته یا باقی کد های ادامه خروجی صفحه به دلایلی مثل Redirect کردن به صفحه دیگه نیاز نباشه و بدونید تا همین جا که اجرا شده برای کاربر کافیه برای همین باقیش رو با exit نادیده میگرید.
البته return با exit کلاً فرق میکنه exit همونطور که از اسمش معلومه باعث خروج از قطعه کد میشه اما return باعث برگشت یک مقدار خروجی میشه که وقتی خالی استفاده میکنید خروجی خالی پس میده و تابع یا قطعه کد رو تموم میکنه.
دستور کلیدی return رو باید بدونید که کاربرد هایی مثل خروجی گرفتن از توابع (function) می تونه داشته باشه در صورتی که exit خودش یه تابع هست و صرفاً کار اتمام یک قطعه یا کل کد رو انجام میده.
-
تعداد تشکر ها ازAtrafNet به دلیل پست مفید
-
August 5th, 2017, 22:30
#5
عضو انجمن
پاسخ : کدوم حالت درست تره؟
گزینه دوم نیز پیشنهادی بندس طی صحبت همکاران دیگه راهنمایی لازم انجام شده
Network Security Specialist
شرکت انتقال داده آوا سامانه ( کیاوا ) به شماره ثبت : ۵۴۹۷۹۲ - مسئولیت محدود
Telegram |
Website
-
تعداد تشکر ها ازkiavaco به دلیل پست مفید
-
August 6th, 2017, 21:17
#6
عضو جدید
پاسخ : کدوم حالت درست تره؟
یکی از روش هایی که به ساده شدن کد ها خیلی کمک میکنه، استفاده نکردن از else تا جای ممکن هست.
تصور کنید اون قسمت "Continue the code" یک کد طولانی باشه که احتمالاَ داخلش چند تا indent دیگه هم وجود داره(مثل if, for, ...)
استفاده کردن از حالت اول باعث میشه یک indent حذف بشه و قطعاَ تاثیر خوبی روی خوانایی کد میگذاره.
یکی از قواعدی هم که معمولاَ توصیه میشه، این هست که کد رو بیش از یک indent جلو نبرین، مثلاَ حلقه های تو در تو، شرط های تو در تو و ... رو معمولاَ میشه به یک متد جدا تبدیل کرد.
-
تعداد تشکر ها از parandsystem به دلیل پست مفید
-
August 7th, 2017, 02:49
#7
عضو انجمن
پاسخ : کدوم حالت درست تره؟
بهتره برای اینجور مسائل از isset() یا سوئیچ استفاده کنید
و بهتره شرطتون هم فرض بر درست بودن بگذارید تا فالس بودن اینه بخودی خود else رو میندازه دور
بهرحال حالت دوم بهتر از بقیه موارد هست و و بهتره متغیر قبل از شرط خالی قرار دهید و در شرط با ایزست هم بهش مقدار بدید هم کاندیشن رو ترو کنید
فکر کنید یک فرم هست
کد PHP:
$name="";
if(isset($_GET['name'])
{
// Continue the code
}
-
تعداد تشکر ها ازstarting به دلیل پست مفید
-
August 7th, 2017, 14:50
#8
عضو دائم
پاسخ : کدوم حالت درست تره؟
باسلام، شما باید ابتدا مشخص کنید get_option در صورت ست نبودن چه مقداری برگشت میدهد تا بشود بهترین راه را پیشنهاد داد، فکر میکنم دارید از متد get_option وردپرس استفاده میکنید، این متد یک پارامتر دوم دیگری ورودی میگیرد که در صورت ست نبودن آپشن، پارامتر دوم را برگشت میده که به صورت دیفالت False هست، پس وقتی فقط از اپراتور ! استفاده میکنید در مورد شما شامل False و صفر خواهد شد (در پشت صحنه، نوع داده شما به صورت موقت کانورت هم میشود تا با عملگر های دیگر هم مقایسه شود، پس طبیعی است که زمان بیشتری بگیرد) و زمانی اگر یک آپشن داشته باشید که اسمش 0 باشه به مشکل خواهید خورد. پس طبیعی است که 2 نوع داده پایین ما هر 2 False هستند :
کد PHP:
$obj = 0;
if(!$obj) echo 'False';
$obj = "0";
if(!$obj) echo 'False';
بهترین راه استفاده از identity operator است، چون در این حالت داده نیاز به هیچگونه تبدیلی ندارد و در نتیجه سرعت compare بیشتر خواهد شد.
کد PHP:
$var = get_option('option_name');
if($var !== false) {
}
- - - Updated - - -
var1==var2
کد:
http://s6.uplod.ir/i/00892/cavtumk0o85d.png
var1===var2
کد:
http://s6.uplod.ir/i/00892/p5798qxdw1tp.png
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید