نمایش نتایج 1 تا 4 از 4

نام تاپیک: یک مشکل ساده

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    49

    روش کار تابع stripos

    سلام دوستان

    داشتم یک کدی مینوشتم یک مشکلی برخورد کردم

    $X="rwaqs775"; 
    if (stripos($X , "r"))
    { echo "hast";
    }else{
    echo "nist";
    }

    در این جواب nist رو برمیگردونه یعنی r نیست در متن وقتی r در اول متن بشه نمیخونه واسم سوال شد

    ولی در این

    $X="qrwaqs775"; 
    if (stripos($X , "r"))
    { echo "hast";
    }else{
    echo "nist";
    }


    جواب hast است میگه در متن کلمه r هست

    حالا سواله برام چرا اینطوریه
    آخرین ویرایش به وسیله kiapmc : پنج شنبه 23 فروردین 1403 در 17:03 عصر

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,060

    روش کار تابع stripos

    سلام و روز خوش

    دلیلش به روش کار تابع stripos برمیگرده:
    این تابع اگر استرینگ مورد جستجو رو پیدا کنه موقعیت اون رو به صورت integer برمیگردونه،
    ولی اگر پیدا نکنه bool با مقدار false برمیگردونه.

    حالا وقتی موقعیت این عبارت مورد جستجو در شروع باشه تابع 0 برمیگردونه و در if مستقیما مقدار 0 رو چک کردین که false تفسیر میشه.
    باید بلوک if رو به شکل زیر بنویسین:
    $X = "rwaqs775";
    if (stripos($X, "r") === false) {
    echo "nist";
    } else {
    echo "hast";
    };


    ==========
    سعی کنین برای تاپیک عنوان مناسب و مرتبط با موضوع انتخاب کنین که در جستجو راحت پیدا بشه.

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1388
    پست
    49

    نقل قول: روش کار تابع stripos

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روز خوش

    دلیلش به روش کار تابع stripos برمیگرده:
    این تابع اگر استرینگ مورد جستجو رو پیدا کنه موقعیت اون رو به صورت integer برمیگردونه،
    ولی اگر پیدا نکنه bool با مقدار false برمیگردونه.

    حالا وقتی موقعیت این عبارت مورد جستجو در شروع باشه تابع 0 برمیگردونه و در if مستقیما مقدار 0 رو چک کردین که false تفسیر میشه.
    باید بلوک if رو به شکل زیر بنویسین:
    $X = "rwaqs775";
    if (stripos($X, "r") === false) {
    echo "nist";
    } else {
    echo "hast";
    };




    ==========
    سعی کنین برای تاپیک عنوان مناسب و مرتبط با موضوع انتخاب کنین که در جستجو راحت پیدا بشه.


    حتما منون از راهنمائی شما

    فقط فرق چیه ما به جای ===FALSE از ==!TRUE استفاده کنیم در کد بالا

    فرق === با == چیه یا ===false با ==! true چیه در کل

    همیشه برام سوال بود از لحاظ ساختاری بررسی میکنه درسته

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,060

    نقل قول: یک مشکل ساده

    فرق چیه ما به جای false === از true ==! استفاده کنیم
    در این مثال خاص قابل جایگزینی نیست!
    دلیلش رو هم نوشتم که به روش پاسخ تابع stripos برمیگرده.
    ولی در حالت کلی هر دو یک معنی میدن.

    فرق === با == چیه در کل
    وقتی با == دو مقدار رو مقایسه میکنین، فقط ارزش رو در نظر میگیره (و البته که خودش تغییر type میده)،
    بنابراین هر کدوم از اینها: 123 یا 123.0 یا "123" یا "123.000" یا 123.0000 که با هم مقایسه بشن نتیجه اش true میشه.

    ولی وقتی از === در مقایسه استفاده کنین type هم باید یکی باشه،
    یعنی دیگه حتی نتیجه مقایسه 123 با 123.0 هم true نیست.

    البته این مثال ساده ای هست که دو طرف number یا string بودن، و php هنگام مقایسه خودش string رو به number تغییر میده،
    برای دونستن روش مقایسه انواع دیگه دیتا باید مستندات رو بخونین.

قوانین ایجاد تاپیک در تالار

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