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

نام تاپیک: استفاده از تابع

  1. #1

    استفاده از تابع

    سلام
    واقعا شرمندم این سوال را میپرسم
    ولی واقعا نمیدونم چرا درست نمیشه
    من یه سری آرایه دارم به اسم های
    move1,move2,....
    که اینارا بالا تعریف کردم
    اولش این آرایه ها مقدارشون خالیه اما بعد از اینکه از یه سری if else میگذره بعضی از این move ها مقدار میگیرن
    ممکنه این moveها مقدار بگیرن ممکن هم هست مقداری نگیرین
    بعدش میام مثلا یک تابع تعریف میکنم که نیاز داره به اون move ها
    مثلا fun1 برای اجرا شدن نیاز داره به move1

    function fun1()
    {
    if($move1)
    {
    code
    }
    }


    بعدش یه if دارم مثلا این

    if($vj1<${"vj$k"})
    {
    fun1();
    }

    ولی به جای اینکه fun1 اجرا بشه اررور میده که تو خطی که نوشتم

    if($move1)

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

  2. #2

    نقل قول: استفاده از تابع

    چک کنید ببینید این میشه؟
    if (isset($move1))

  3. #3

    نقل قول: استفاده از تابع

    نقل قول نوشته شده توسط ASHKANLAEI مشاهده تاپیک
    چک کنید ببینید این میشه؟
    if (isset($move1))
    بی نهایت ممنونم که جواب دادین
    دیگه اررور نمیده
    ولی هیچکدوم از fun را اجرا نمیکنه
    یعنی کارهایی که بعد از

    if(isset($move1))

    نوشتم انجام نمیده
    جتی یه

    echo "ok";

    را هم انجام نمیده

  4. #4

    نقل قول: استفاده از تابع


    var_dump($move1);

    مقدار داره
    ولی کارهای بعد از isset را انجام نمیده

  5. #5

    نقل قول: استفاده از تابع

    این یکی چی؟
    if (!empty($move1))

  6. #6

    نقل قول: استفاده از تابع

    نقل قول نوشته شده توسط ASHKANLAEI مشاهده تاپیک
    این یکی چی؟
    if (!empty($move1))
    همون جوریه کارهای بعد از if را انجام نمیده

  7. #7

    نقل قول: استفاده از تابع

    if($move1)
    اگر move1 چی؟
    شما درست و کامل به برنامه نگفتید که باید چکار کنه و اونم نمیدونه چکار کنه متوقف میشه
    هدفتون دقیقا چیه

  8. #8

    نقل قول: استفاده از تابع

    همون جوریه کارهای بعد از if را انجام نمیده
    به نظرم ممکنه مشکل از جای دیگه ای باشه، شما بیاین empty , isset رو بنویسید تو صفحه ببینید مشکل از اون ها است یا نه؟

  9. #9
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: استفاده از تابع

    تابع به متغیر های بیرون از اسکوپ خودش دسترسی نداره .... منظور از اسکوپ همون { } جلوش هست
    شما اگه بیرون از تابع یک متغیر تعریف کردی توی تابع نمیتونی بهش دسترسی پیدا کنی همینجوری
    2 راه داره یا باید به صورت آرگومان براش بفرستی


    تابعت رو باید اینجوری تعریف کنی

    function fun1( $move1 )
    {
    if($move1)
    {
    code
    }
    }


    بعد وقتی صداش میزنی متغیر رو بهش پاس بدی



    fun1( $move1 );


    یا اینکه از کلید global آستفاده کنی برای متغیر تا تابع بتونه بهش دسترسی پیدا کنه

    function fun1( )
    {
    global $move1 ;

    if($move1)
    {
    code
    }
    }



    مورد دیگه اینکه


    if($move1)


    چک میکنه که یک متغییر false یا true هستش
    اگه شما یه آرایه داری که میخای چک کنی پر باشه باید اینجوری بنویسی

     if(!empty($move1))

  10. #10

    نقل قول: استفاده از تابع

    از همه شما واقعا ممنونم
    بی نهایت سپاسگذارم
    حقیقتا فکر کنم اشکال کار همون چیزی هست که
    plague گفتن
    ولی من از راهکارهاشون استفاده کردم اینکه move1 را به صورت ورودی به تابع بدهم ولی باز هم کلی اررور داد
    چون در ادامه کدها هم دوباره میخواد از یه آرایه دیگه ای به اسم a استفاده کنه و باز هم اررور میده که من آرایه a را نمیشناسم
    آیا امکان داره که چیزی شبیه به global که برای متغیر وجود دارد برای آرایه هم وجود داشته باشه


  11. #11

    نقل قول: استفاده از تابع

    نقل قول نوشته شده توسط hobab-theme مشاهده تاپیک
    اگر move1 چی؟
    شما درست و کامل به برنامه نگفتید که باید چکار کنه و اونم نمیدونه چکار کنه متوقف میشه
    هدفتون دقیقا چیه
    این کل کدییه که مثلا برای fun1 میخوام اجرا بشه

    function fun1($move1)
    {
    if(!empty($move1))
    {
    //جای دو خانه را با هم عضو کن
    $tmp = $a[$move1[0]][$move1[1]];
    $a[$move1[0]][$move1[1]] = $a[$move1[4]][$move1[5]];
    $a[$move1[2]][$move1[3]] = 0;
    $a[$move1[4]][$move1[5]] = $tmp;


    unset($tmp);
    $w0=$w0j1;
    $w1=$w1j1;
    $w2=$w2j1;
    $w3=$w3j1;
    $w4=$w4j1;
    $w5=$w5j1;
    $w6=$w6j1;
    // kblue
    if($a[0][$j]===1)
    {
    $data=3;
    }
    // kred
    if($a[7][$j]===2)
    {
    $data=4;
    }
    $red = $blue = $kblue = $kred =0;
    array_walk_recursive($a, function($t) use(&$red, &$blue, &$kblue, &$kred)
    {
    if($t==1) {++$blue;}
    elseif($t==2) {++$red;}
    elseif($t==3) {++$kblue;}
    elseif($t==4) {++$kred;}
    });
    $tred=0;
    if($data===2 && $db===1 && $dg===0 || $data===2 && $dbg===1 && $dgb===0)
    {
    $tred++;
    }


    $tblue=0;
    if($data===1 && $dbg===2 && $dgb===0 || $data===1 && $db===2 && $dg===0)
    {
    $tblue++;
    }


    $v=$w0+($w1*$blue)+($w2*$red)+($w3*$kblue)+($w4*$k red)+($w5*$tblue)+($w6*$tred);
    }
    }

  12. #12

    نقل قول: استفاده از تابع

    نقل قول نوشته شده توسط Salazar.mi مشاهده تاپیک
    از همه شما واقعا ممنونم
    بی نهایت سپاسگذارم
    حقیقتا فکر کنم اشکال کار همون چیزی هست که
    plague گفتن
    ولی من از راهکارهاشون استفاده کردم اینکه move1 را به صورت ورودی به تابع بدهم ولی باز هم کلی اررور داد
    چون در ادامه کدها هم دوباره میخواد از یه آرایه دیگه ای به اسم a استفاده کنه و باز هم اررور میده که من آرایه a را نمیشناسم
    آیا امکان داره که چیزی شبیه به global که برای متغیر وجود دارد برای آرایه هم وجود داشته باشه

    اصلاً global برای این دو فرقی نداره

  13. #13

    نقل قول: استفاده از تابع

    نقل قول نوشته شده توسط ASHKANLAEI مشاهده تاپیک
    اصلاً global برای این دو فرقی نداره
    ولی وقتی نوشتم

    global $move1;

    ارور داد

  14. #14

    نقل قول: استفاده از تابع

    ممکنه ارور از جای دیگری باشه

  15. #15

    نقل قول: استفاده از تابع

    نقل قول نوشته شده توسط ASHKANLAEI مشاهده تاپیک
    ممکنه ارور از جای دیگری باشه
    احتمال داره من که دیگه ازش سر در نیاوردم
    بی نهایت ممنونم که جواب دادین تشکرات ویژه

  16. #16
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: استفاده از تابع

    خب چرا متن اررورت رو نزاشتی ؟!


            $tmp = $a[$move1[0]][$move1[1]];



    اینجا متغیر $a از کجا اومده ؟


    آیا امکان داره که چیزی شبیه به global که برای متغیر وجود دارد برای آرایه هم وجود داشته باشه
    متغیر یه فضای حافظه کامپیوتری هستش که توش میتونه حرف باشه یا عدد باشه یا آرایه باشه ..... مثل یه ظرف که توش چیز میریزی

    طبیعتا شما میتونی متغیری که توش یه آرایست رو گلوبال کنی

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: یک شنبه 26 مرداد 1399, 01:59 صبح
  2. پاسخ: 2
    آخرین پست: پنج شنبه 20 آذر 1393, 10:07 صبح

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

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