آژانس هواپیمایی
pop up

توضيحي در مورد تابع declare و register_tick_function

شروع موضوع توسط sasan_66 ‏5 آگوست 2007 در انجمن PHP

  1. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    سلام
    ممكنه در مورد توابع register_tick_function و declare توصيح بدين؟
    از تو داكيومنت خود php خوندم منتها چيزه زيادي دستگيرم نشد.
    اينم مثالي كه نوشته:
    PHP:
    <?php
    // A function that records the time when it is called
    function profile($dump FALSE)
    {
        static 
    $profile;

        
    // Return the times stored in profile, then erase it
        
    if ($dump) {
            
    $temp $profile;
            unset(
    $profile);
            return 
    $temp;
        }

        
    $profile[] = microtime();
    }

    // Set up a tick handler
    register_tick_function("profile");

    // Initialize the function before the declare block
    profile();

    // Run a block of code, throw a tick every 2nd statement
    declare(ticks=2) {
        for (
    $x 1$x 50; ++$x) {
            echo 
    similar_text(md5($x), md5($x*$x)), "<br />;";
        }
    }

    // Display the data stored in the profiler
    print_r(profile(TRUE));
    ?> 
     
  2. firebird

    firebird Registered User

    تاریخ عضویت:
    ‏2 جولای 2005
    نوشته ها:
    1,424
    تشکر شده:
    9
    این کد
    PHP:
    declare(ticks=2) {
    //...........

    باعث میشه هر 2 خطی که تو بلوک اجرا میشه یک تیک روی بده. حالا اگه قبلش همچین کدی داشته باشی :
    PHP:
    register_tick_function("profile");
    باعث میشه با روی دادن هر تیک یک بار تابع profile اجرا بشه. بیشتر به درد دیباگ کردن میخوره. مثلاً یک تیک یک خطی تعریف کنی و تو هر خط یک بار مقدار متغیرهای مهم رو بفرستی تو خروجی تا بفهمی که مشکل کدت کجاست.
     
  3. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    firebird از جوابتون ممنونم منتها نمي دونم چرا وقتي كد بالا يا هر كد ساده ي ديگه اي رو كه توش از declare استفاده شده مي خوام تست كنم apache ام ارور ميده
    مشكل از كجاست؟؟
     
  4. firebird

    firebird Registered User

    تاریخ عضویت:
    ‏2 جولای 2005
    نوشته ها:
    1,424
    تشکر شده:
    9
    خوب چه خطایی میده؟
     
  5. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    از اين ارور هاي ويندوزه
    Apache HTTP Server has encounter a problem and needs to close. We are sorry for the inconvenience.
    گزينه ي don'tsend رو ميزنم ولي صفحه بسته نميشه و به لود شدنش ادامه ميده يه چند بار اين مشكل تكرار ميشه