Jump to content
php.lv forumi

Taimeris


daGrevis

Recommended Posts

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. =)

Link to comment
Share on other sites

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 ;

Link to comment
Share on other sites

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 by marcis
Link to comment
Share on other sites

+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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Š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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...