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

موضوع: مشکل در استفاده از if و else و elseif

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو انجمن
    تاریخ عضویت
    Jul 2014
    نوشته ها
    199
    تشکر تشکر کرده 
    118
    تشکر تشکر شده 
    75
    تشکر شده در
    70 پست

    Question مشکل در استفاده از if و else و elseif

    سلام و درود

    کد PHP:
    $a = [1,2,3,4,5,6,7,8,9,10];
    if (
    array_search(1$a)) echo 1;elseif (array_search(2$a)) echo 2;elseif (array_search(3$a)) echo 3;elseif (array_search(4$a)) echo 4;elseif (array_search(5$a)) echo 5;elseif (array_search(6$a)) echo 6;elseif (array_search(7$a)) echo 7;elseif (array_search(8$a)) echo 8;elseif (array_search(9$a)) echo 9;else echo 10
    جواب قطعه کد بالا برابر عدد 2 است.
    چرا جواب 1 نیست؟
    مشکل چیست؟

    تشکر

  2. #2
    عضو انجمن
    تاریخ عضویت
    Apr 2014
    نوشته ها
    297
    تشکر تشکر کرده 
    19
    تشکر تشکر شده 
    303
    تشکر شده در
    245 پست

    پیش فرض پاسخ : مشکل در استفاده از if و else و elseif

    کد PHP:
    array_search اولین وقوع مقدار را در آرایه میدهد 
    array_search
    (1$a)  برابر صفر هست
    array_search
    (2$aبرابر 1 هست 
    ترجمه متون تخصصی ---- تدریس خصوصی
    اسکریپت نویسی php

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


  4. #3
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض پاسخ : مشکل در استفاده از if و else و elseif

    نقل قول نوشته اصلی توسط naghmesra نمایش پست ها
    سلام و درود

    کد PHP:
    $a = [1,2,3,4,5,6,7,8,9,10];
    if (
    array_search(1$a)) echo 1;elseif (array_search(2$a)) echo 2;elseif (array_search(3$a)) echo 3;elseif (array_search(4$a)) echo 4;elseif (array_search(5$a)) echo 5;elseif (array_search(6$a)) echo 6;elseif (array_search(7$a)) echo 7;elseif (array_search(8$a)) echo 8;elseif (array_search(9$a)) echo 9;else echo 10
    جواب قطعه کد بالا برابر عدد 2 است.
    چرا جواب 1 نیست؟
    مشکل چیست؟

    تشکر
    سلام وقت بخیر

    عزیز خروجی array_search شماره کلید آرایه هست (شمارش کلید های آرایه از صفر شروع میشه)
    پاسخ array_search(1, $a) صفر هست و تو شرط if صفر یعنی شرط خاموش هست پس میره سراغ elseif (array_search(2, $a)) و 2 چاپ میشه

    کد زیر رو اجرا کنید متوجه موضوع میشید
    کد PHP:
    $a = [1,2,3,4,5,6,7,8,9,10];
    foreach(
    $a as $_a)
        echo 
    array_search($_a,$a) . '<br/>'

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


  6. #4
    عضو انجمن
    تاریخ عضویت
    Jul 2014
    نوشته ها
    199
    تشکر تشکر کرده 
    118
    تشکر تشکر شده 
    75
    تشکر شده در
    70 پست

    پیش فرض پاسخ : مشکل در استفاده از if و else و elseif

    درود

    من احساس میکردم array_search تنها در صورت پیدا کردن مورد مقدار true و در صورت پیدا نکردن مقدار false رو برمیگردونه.

    خوب یه سوال دیگه هم داشتم:

    ساختار های شرطی پشت هم با تعدادی elseif (مانند کدی که دربارش صحبت کردیم) از لحاظ فنی مشکلی در اجرا ندارن؟
    منظورم اینه که این ساختار بهینه است؟

    تشکر

  7. #5
    عضو انجمن omid1991 آواتار ها
    تاریخ عضویت
    Jun 2013
    محل سکونت
    نمین
    نوشته ها
    217
    تشکر تشکر کرده 
    412
    تشکر تشکر شده 
    495
    تشکر شده در
    284 پست

    پیش فرض پاسخ : مشکل در استفاده از if و else و elseif

    نقل قول نوشته اصلی توسط naghmesra نمایش پست ها
    درود

    من احساس میکردم array_search تنها در صورت پیدا کردن مورد مقدار true و در صورت پیدا نکردن مقدار false رو برمیگردونه.

    خوب یه سوال دیگه هم داشتم:

    ساختار های شرطی پشت هم با تعدادی elseif (مانند کدی که دربارش صحبت کردیم) از لحاظ فنی مشکلی در اجرا ندارن؟
    منظورم اینه که این ساختار بهینه است؟

    تشکر
    اگه true|false میخوایید بگیرید از in_array استفاده کنید.
    کد PHP:
    # needle : سوزن
    # haystack : انبار کاه
    bool in_array     mixed $needle    , array $haystack    [, bool $strict FALSE   ] ) 
    در مورد ساختار از روش های ساده تری هم میشه استفاده کرد بستگی به هدفتون داره ،
    بمرور خودتون یاد میگیرد نگران ساختار نیاشید
    تو کد نویسی تمرین کنید و نتیجه رو بررسی کنید ، همه توابع php لازم میشه سعی کنید با همه توابع کار کنید
    بنظر من تمرین بهترین راه یادگیریه
    سوال کردن خوبه ولی همیشه پاسخی برای همه سوالات پیدا نمیشه مخصوصا تو وبسایت های فارسی زبان

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


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

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

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

موضوعات مشابه

  1. پاسخ ها: 59
    آخرين نوشته: January 18th, 2015, 16:02
  2. سوال - بستن رنج ای پی با استفاده دسترسی روت به سرور مجازی
    توسط Admin_chatBaran.ir در انجمن سوالات و مشکلات
    پاسخ ها: 2
    آخرين نوشته: January 8th, 2015, 19:53
  3. پاسخ ها: 84
    آخرين نوشته: July 28th, 2014, 02:59
  4. پاسخ ها: 20
    آخرين نوشته: February 28th, 2010, 03:39

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

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