Hello,

When should i prefer strcmp() above == or !=?
I have test it out (see code below).
But a == comparison seems to be faster always.
First i thought is was cause, if(strcmp($1,$2)!=0), 
needs two comparisons (strcmp and !=). But even
if($1!=$2) is faster then if(strcmp($1,$2)).

Thanks,

Bas Jobsen

<?

function getmicrotime(){
    list($usec, $sec) = explode(" ",microtime());
    return ((float)$usec + (float)$sec);
    }


$t1='hello';
$t2='hello';
$t3='hallo';

?>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if(strcmp($t1,$t3));//nonmatch
echo getmicrotime()-$start;
?>
<br>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if($t1!=$t3);//nonmatch
echo getmicrotime()-$start;
?>

<br>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if(!strcmp($t1,$t3));//match
echo getmicrotime()-$start;
?>
<br>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if($t1==$t3);//match
echo getmicrotime()-$start;
?>
<br>

1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if(strcmp($t1,$t2));//nonmatch
echo getmicrotime()-$start;
?>
<br>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if($t1!=$t2);//nonmatch
echo getmicrotime()-$start;
?>

<br>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if(!strcmp($t1,$t2));//match
echo getmicrotime()-$start;
?>
<br>
1000x:<?
$start=getmicrotime();
for($a=0; $a<100000; $a++) if($t1==$t2);//match
echo getmicrotime()-$start;
?>
<br>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to