نمایش نتایج: از شماره 1 تا 8 , از مجموع 8

موضوع: کدوم حالت درست تره؟

  1. #1
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    Question کدوم حالت درست تره؟

    سلام بر همه اساتید و دوستان

    من یه کار رو به چند شکل کدشو میگم و اساتید با دلیل بگن کدوم حالت صحیح تر هست.

    کد 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; 
    پیشاپیش تشکر بابت نظراتی که خواهید داد.
    ولادت آقا موسی الرضا هم به همه بچه های انجمن تبریک میگم.

    موفق باشید

  2. # ADS




     

  3. #2
    عضو جدید parswebdesign آواتار ها
    تاریخ عضویت
    Nov 2016
    محل سکونت
    tehran
    نوشته ها
    31
    تشکر تشکر کرده 
    4
    تشکر تشکر شده 
    23
    تشکر شده در
    18 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

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

  4. تعداد تشکر ها از parswebdesign به دلیل پست مفید


  5. #3
    کاربر اخراج شده
    تاریخ عضویت
    Aug 2017
    نوشته ها
    37
    تشکر تشکر کرده 
    43
    تشکر تشکر شده 
    6
    تشکر شده در
    5 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

    نقل قول نوشته اصلی توسط 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; 
    پیشاپیش تشکر بابت نظراتی که خواهید داد.
    ولادت آقا موسی الرضا هم به همه بچه های انجمن تبریک میگم.

    موفق باشید
    سایر اساتید نظری ندارند؟

  6. #4
    عضو انجمن AtrafNet آواتار ها
    تاریخ عضویت
    Nov 2016
    نوشته ها
    259
    تشکر تشکر کرده 
    2,584
    تشکر تشکر شده 
    729
    تشکر شده در
    417 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

    سلام
    من روش دوم رو پیشنهاد میکنم چون به نظرم تا زمانی که دلیل منطقی برای دستی پایان دادن کد نباشه نیاز هم نیست کد رو حالا چه با return یا چه با exit پایان بدید.
    اصولاً وقتی بخش Continue the code که کامنت کردید کد هاش تموم و اجرا بشه php خودش کار رو تموم شده می دونه و نیاز به دستی exit کردن کد نیست.
    مگر در مواردی که به نظرم بدونید که ممکنه حلقه بی نهایت (Infinite Loop) اتفاق بیفته یا باقی کد های ادامه خروجی صفحه به دلایلی مثل Redirect کردن به صفحه دیگه نیاز نباشه و بدونید تا همین جا که اجرا شده برای کاربر کافیه برای همین باقیش رو با exit نادیده میگرید.

    البته return با exit کلاً فرق میکنه exit همونطور که از اسمش معلومه باعث خروج از قطعه کد میشه اما return باعث برگشت یک مقدار خروجی میشه که وقتی خالی استفاده میکنید خروجی خالی پس میده و تابع یا قطعه کد رو تموم میکنه.
    دستور کلیدی return رو باید بدونید که کاربرد هایی مثل خروجی گرفتن از توابع (function) می تونه داشته باشه در صورتی که exit خودش یه تابع هست و صرفاً کار اتمام یک قطعه یا کل کد رو انجام میده.

  7. تعداد تشکر ها ازAtrafNet به دلیل پست مفید


  8. #5
    عضو انجمن kiavaco آواتار ها
    تاریخ عضویت
    May 2017
    محل سکونت
    CA , IR
    نوشته ها
    306
    تشکر تشکر کرده 
    437
    تشکر تشکر شده 
    421
    تشکر شده در
    313 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

    گزینه دوم نیز پیشنهادی بندس طی صحبت همکاران دیگه راهنمایی لازم انجام شده
    Network Security Specialist
    شرکت انتقال داده آوا سامانه ( کیاوا ) به شماره ثبت : ۵۴۹۷۹۲ - مسئولیت محدود
    Telegram | Website

  9. تعداد تشکر ها ازkiavaco به دلیل پست مفید


  10. #6
    عضو جدید parandsystem آواتار ها
    تاریخ عضویت
    Jun 2017
    نوشته ها
    9
    تشکر تشکر کرده 
    0
    تشکر تشکر شده 
    11
    تشکر شده در
    7 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

    یکی از روش هایی که به ساده شدن کد ها خیلی کمک میکنه، استفاده نکردن از else تا جای ممکن هست.
    تصور کنید اون قسمت "Continue the code" یک کد طولانی باشه که احتمالاَ داخلش چند تا indent دیگه هم وجود داره(مثل if, for, ...)
    استفاده کردن از حالت اول باعث میشه یک indent حذف بشه و قطعاَ تاثیر خوبی روی خوانایی کد میگذاره.

    یکی از قواعدی هم که معمولاَ توصیه میشه، این هست که کد رو بیش از یک indent جلو نبرین، مثلاَ حلقه های تو در تو، شرط های تو در تو و ... رو معمولاَ‌ میشه به یک متد جدا تبدیل کرد.

  11. تعداد تشکر ها از parandsystem به دلیل پست مفید


  12. #7
    عضو انجمن starting آواتار ها
    تاریخ عضویت
    Jul 2015
    محل سکونت
    6346cc631627632
    نوشته ها
    255
    تشکر تشکر کرده 
    612
    تشکر تشکر شده 
    372
    تشکر شده در
    245 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

    بهتره برای اینجور مسائل از isset() یا سوئیچ استفاده کنید
    و بهتره شرطتون هم فرض بر درست بودن بگذارید تا فالس بودن اینه بخودی خود else رو میندازه دور
    بهرحال حالت دوم بهتر از بقیه موارد هست و و بهتره متغیر قبل از شرط خالی قرار دهید و در شرط با ایزست هم بهش مقدار بدید هم کاندیشن رو ترو کنید

    فکر کنید یک فرم هست

    کد PHP:
    $name="";
    if(isset(
    $_GET['name'])
    {
     
    // Continue the code


    -----

  13. تعداد تشکر ها ازstarting به دلیل پست مفید


  14. #8
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : کدوم حالت درست تره؟

    باسلام، شما باید ابتدا مشخص کنید 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

  15. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •