- assert: documentation ( source)
- microtime: documentation ( source)
- set_time_limit: documentation ( source)
- print_r: documentation ( source)
- array_keys: documentation ( source)
<?php
set_time_limit(0);
echo "<pre>";
// First Code
function m1($a, $b) {
$var = null;
if ($a == 1) {
if ($b == 1) {
$var = 'test';
}
}
return $var;
}
// Secound Code
function m2($a, $b) {
$var = null;
if ($a == 1 && $b == 1) {
$var = 'test';
}
return $var;
}
$result = array(
'm1' => 0,
'm2' => 0
);
// Make sure function get same results
assert(m2(0, 0) === m1(0, 0));
assert(m2(1, 1) === m1(1, 1));
// Case 1 with only 1
for($i = 0; $i < 100000; ++ $i) {
foreach(array_keys($result) as $key) {
$alpha = microtime(true);
$key(1, 1);
$result[$key] += microtime(true) - $alpha;
}
}
echo '<pre>';
echo "Single Run\n";
print_r($result);
echo '</pre>';
// Case 2 with only 1 & 0;
$n = 1;
for($i = 0; $i < 100000; ++ $i) {
foreach(array_keys($result) as $key) {
$n = $n ? 0 : 1;
$alpha = microtime(true);
$key($n, $n);
$result[$key] += microtime(true) - $alpha;
}
}
echo '<pre>';
echo "Single Run\n";
print_r($result);
echo '</pre>';
?>