, bool.
if ($ var) bool ( " " ).
if($abc['boolean_lookup'] == TRUE) if($abc['boolean_lookup'] === TRUE) (2 3 ).
, bool, .
, 3 , .
script , , $how_many = 5000000; $how_many = 3000000;
script:
<?php
function DoTest(){
$how_many = 3000000;
$counter1 = 0;
$counter2 = 0;
$counter3 = 0;
$counter4 = 0;
$counter5 = 0;
$counter6 = 0;
$abc = array('boolean_lookup'=>TRUE, 'string_lookup'=>'something_else');
$start = microtime(true);
for($i = 0; $i < $how_many; $i++){
if($abc['boolean_lookup']){
$counter1++;
}
}
echo "GENERAL-IF ON A BOOL: ", (microtime(true) - $start)*10, "<br />\n";
$start = microtime(true);
for($i = 0; $i < $how_many; $i++){
if($abc['string_lookup']){
$counter2++;
}
}
echo "GENERAL-IF ON A STRING: ", (microtime(true) - $start)*10, "<br />\n";
$start = microtime(true);
for($i = 0; $i < $how_many; $i++){
if($abc['boolean_lookup'] == TRUE){
$counter3++;
}
}
echo "TWO-EQUALL-IF ON A BOOL : ", (microtime(true) - $start)*10, "<br />\n";
$start = microtime(true);
for($i = 0; $i < $how_many; $i++){
if($abc['string_lookup'] == 'something_else'){
$counter4++;
}
}
echo "TWO-EQUALL-IF ON A STRING : ", (microtime(true) - $start)*10, "<br />\n";
$start = microtime(true);
for($i = 0; $i < $how_many; $i++){
if($abc['boolean_lookup'] === TRUE){
$counter5++;
}
}
echo "THREE-EQUALL-IF ON A BOOL : ", (microtime(true) - $start)*10, "<br />\n";
$start = microtime(true);
for($i = 0; $i < $how_many; $i++){
if($abc['string_lookup'] === 'something_else'){
$counter6++;
}
}
echo "THREE-EQUALL-IF ON A STRING : ", (microtime(true) - $start)*10, "<br />\n";
}
$number_of_tests = 3;
for($i = 0; $i < $number_of_tests; $i++){
echo "<br />\n<br />\n== Test #".($i+1)."<br />\n";
DoTest();
}
?>
:
== Test
GENERAL-IF ON A BOOL: 7.61245965958
GENERAL-IF ON A STRING: 7.49043941498
TWO-EQUALL-IF ON A BOOL : 8.92991065979
TWO-EQUALL-IF ON A STRING : 10.3996396065
THREE-EQUALL-IF ON A BOOL : 8.02039146423
THREE-EQUALL-IF ON A STRING : 9.25590991974
== Test
GENERAL-IF ON A BOOL: 7.74684906006
GENERAL-IF ON A STRING: 7.58201122284
TWO-EQUALL-IF ON A BOOL : 8.90240907669
TWO-EQUALL-IF ON A STRING : 10.2967596054
THREE-EQUALL-IF ON A BOOL : 8.08442115784
THREE-EQUALL-IF ON A STRING : 9.2577290535
== Test
GENERAL-IF ON A BOOL: 7.63362884521
GENERAL-IF ON A STRING: 7.5103187561
TWO-EQUALL-IF ON A BOOL : 8.92127037048
TWO-EQUALL-IF ON A STRING : 10.4210495949
THREE-EQUALL-IF ON A BOOL : 8.02319049835
THREE-EQUALL-IF ON A STRING : 9.25379991531
, , ( ) bool , .
if() - , bool.
- , true false (.. ?)
,
Krinkle