<?php
$GLOBALS['cnt'] = 100000;
function foreachvalue($a){
$c = 0;
foreach($a as $v){ if($v=='xxxxx') ++$c; }
}
function foreachreference(&$a){
$c = 0;
foreach($a as $v){ if($v=='xxxxx') ++$c; }
}
function forvalue($a){
$c = 0;
for($i=0; $i<$GLOBALS['cnt']; ++$i)
if($a[$i]=='xxxxx') ++$c;
}
function forreference(&$a){
$c = 0;
for($i=0; $i<$GLOBALS['cnt']; ++$i)
if($a[$i]=='xxxxx') ++$c;
}
function forcountvalue($a){
$c = 0;
for($i=0; $i<$c_a; ++$i)
if($a[$i]=='xxxxx') ++$c;
}
function forcountreference(&$a){
$c = 0;
for($i=0; $i<$c_a; ++$i)
if($a[$i]=='xxxxx') ++$c;
}
function dovalue($a){
$c = 1;
$_cnt = 0;
do {
if($a[$i]=='xxxxx') ++$c;
$_cnt++;
} while ($_cnt < $GLOBALS['cnt']);
}
function doreference(&$a){
$c = 1;
$_cnt = 0;
do {
if ($a[$i]=='xxxxx') ++$c;
$_cnt++;
} while ($_cnt < $GLOBALS['cnt']);
}
function docountvalue($a){
$c = 1;
$_cnt = 0;
do {
if($a[$i]=='xxxxx') ++$c;
$_cnt++;
} while ($_cnt < $c_a);
}
function docountreference(&$a){
$c = 1;
$_cnt = 0;
do {
if ($a[$i]=='xxxxx') ++$c;
$_cnt++;
} while ($_cnt < $c_a);
}
foreachvalue($x);
foreachreference($x);
echo "foreach value: " . ($foreachend1 - $foreachbegin) . "\n";
echo "foreach reference: " . ($foreachend2 - $foreachend1) . "\n\n";
forvalue($x);
forreference($x);
echo "for value: " . ($forend1 - $forbegin) . "\n";
echo "for reference: " . ($forend2 - $forend1) . "\n\n";
forcountvalue($x);
forcountreference($x);
echo "for count value: " . ($forcountend1 - $forcountbegin) . "\n";
echo "for count reference: " . ($forcountend2 - $forcountend1) . "\n\n";
dovalue($x);
doreference($x);
echo "do value: " . ($doend1 - $dobegin) . "\n";
echo "do reference: " . ($doend2 - $doend1) . "\n\n";
docountvalue($x);
docountreference($x);
echo "do count value: " . ($docountend1 - $docountbegin) . "\n";
echo "do count reference: " . ($docountend2 - $docountend1) . "\n";
?>