daGrevis Posted June 17, 2010 Report Share Posted June 17, 2010 http://paste.php.lv/ecc964c1aa2f8148a07762faee68bb97?lang=php Izdrukā -0 sekundes. =D Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 17, 2010 Report Share Posted June 17, 2010 o_O tu tak nekur neko nepieglabā...tikai atgriez vērtības (vienmēr tekošā laika). $start = microtime(true); sleep(3); echo 'I slept for ' . (microtime(true) - $start) . ' seconds'; Quote Link to comment Share on other sites More sharing options...
daGrevis Posted June 17, 2010 Author Report Share Posted June 17, 2010 BEt vai tad nav tā, ka funkcija timer__start() un timer__stop() saglabā sevī vērtības un tad, izsaucot funkciju tās atgriež? Ja nē, es vēlētos zināt - kā to panākt, lai tas būtu ar funkcijām. =) Quote Link to comment Share on other sites More sharing options...
mefisto Posted June 17, 2010 Report Share Posted June 17, 2010 Nez .. kaut kā šitā. class Timer{ private $time; public function __construct( $param = false ){ if ( !param ){ $param = microtime(true); } $this->time = $param; } public function __toString() { $out = round( 1000*(microtime(true) - $this->time) , 2 ) ; return 'Pagāja '.(string)$out . ' ms'; } } $timer = new Timer( microtime( true ) ); usleep(500); echo $timer ; Quote Link to comment Share on other sites More sharing options...
marcis Posted June 17, 2010 Report Share Posted June 17, 2010 (edited) Nē, funkcija sevī vērtības nesaglabā, ja vien iekš tās nav nodefinēts statisks variablis. function timer__start(){ static $var = null; if(is_null($var)) $var = microtime(true); return $var; } function timer__stop(){ static $var = null; if(is_null($var)) $var = microtime(true); return $var; } Tagad funkcija vienmēr atgriezīs vienu rezultātu - laiku, kad šī funkcija tika izsaukta pirmo reizi. P.S. +1 mefisto Edited June 17, 2010 by marcis Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted June 17, 2010 Report Share Posted June 17, 2010 +mefisto + (daļēji) marcis marcis variantu var palabot, lai strādā function timer() { static $time; if(!isset($time)) $time = microtime(true); else return microtime(true) - $time; } timer(); sleep(2); echo timer(); Es priekšroku dotu klasei btw... + vēl viens variants ir globālie variabļi $time_start = null; function start() { global $time_start; $time_start = microtime(true); } function stop() { global $time_start; return microtime(true) - $time_start; } start(); sleep(1); echo stop(); tas gan nav īpaši smuki :P Quote Link to comment Share on other sites More sharing options...
mounkuls Posted June 18, 2010 Report Share Posted June 18, 2010 Es laikam atpalicis, bet es pa tiešo piēšķiru variabļiem vērtības sākumā $start_timer, pirms pēdējās izvades rindiņas sarēķinu $generate_time un drukāju laukā. Viss strādā bez kādām tur vēl funkcijām. Protams vienmēr tie mainīgie ir viena nosaukuma un nozīmes Quote Link to comment Share on other sites More sharing options...
marcis Posted June 18, 2010 Report Share Posted June 18, 2010 Šis vairāk, manuprāt, bija jautājums par tehnisko realizāciju, nevis ideju kā tādu. Protams, ka vēl vienkāršāk to būtu realizēt ar konstanti, ko nodefinē skriptam palaižoties, viņa nav pārdefinējama un nekur nepazudīs. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.