Code: Alles auswählen
<?
$var = 5000;
$tests = 1000;
###################################
echo '<b>elseif</b><br />';
###################################
for ( $i = 0; $i < $tests; $i++ )
{
$starttime = array_sum( explode( ' ', microtime() ) );
if ( $var >= 5000 ) echo '';
elseif ( $var < 5000 ) echo '';
elseif ( $var < 4000 ) echo '';
elseif ( $var < 3000 ) echo '';
elseif ( $var < 2000 ) echo '';
elseif ( $var < 1000 ) echo '';
$endtime = array_sum( explode( ' ', microtime() ) );
$elseif_arr[] = $endtime - $starttime;
// echo $endtime - $starttime . '<br />';
}
echo '<br /><b>' . array_sum( $elseif_arr ) / $tests . '</b>';
###################################
echo '<br><br><b>else if</b><br />';
###################################
for ( $i = 0; $i < $tests; $i++ )
{
$starttime = array_sum( explode( ' ', microtime() ) );
if ( $var >= 5000 ) echo '';
else if ( $var < 5000 ) echo '';
else if ( $var < 4000 ) echo '';
else if ( $var < 3000 ) echo '';
else if ( $var < 2000 ) echo '';
else if ( $var < 1000 ) echo '';
$endtime = array_sum( explode( ' ', microtime() ) );
$if_arr[] = $endtime - $starttime;
// echo $endtime - $starttime . '<br />';
}
echo '<br /><b>' . array_sum( $if_arr ) / $tests . '</b>';
###################################
echo '<br><br><b>switch</b><br />';
###################################
for ( $i = 0; $i < $tests; $i++ )
{
$starttime = array_sum( explode( ' ', microtime() ) );
switch ( true )
{
case $var >= 5000:
echo '';
break;
case $var < 5000:
echo '';
break;
case $var < 4000:
echo '';
break;
case $var < 3000:
echo '';
break;
case $var < 2000:
echo '';
break;
case $var < 1000:
echo '';
break;
}
$endtime = array_sum( explode( ' ', microtime() ) );
$case_arr[] = $endtime - $starttime;
// echo $endtime - $starttime . '<br />';
}
echo '<br /><b>' . array_sum( $case_arr ) / $tests . '</b>';
###################################
?>

als ergebnis hab ich beim durchschnitt das hier:
Code: Alles auswählen
elseif: 5.2155733108521E-005
else if: 5.5082559585571E-005
switch: 5.6262016296387E-005