PHP Performance & Benchmarking: Testing Boolean Variables

Testing booleans is a common code occurance in programs, and I have been trying to be a good programmer and use $var===true (=== means exactly equal, == means equivalent.) However, I also worry about performance, and I suspect that using the exactly equal to comparison is slowing down scripts where I'm doing many, many comparisons.

Test Environment: Linux, Apache, PHP 5.2.17.

Test Setup: Code constructs listed below. For loops used to have enough iterations to make the script execution time calculatable. Each test was run 3000 times to get the average.

Comparisons

Using ($var)

$var=true;
for($i=0; $i<1000; $i++)
{ 
	if($var)
	{
		//do something
	} 
}

Using $var==true

$var=true;
for($i=0; $i<1000; $i++)
{ 
	if($var==true)
	{
		//do something
	} 
}

Using $var===true

$var=true;
for($i=0; $i<1000; $i++)
{ 
	if($var===true)
	{
		//do something
	} 
}
Results
Test Avg Execution Time Comparative Graph - (longer is slower, 100% is the fastest time)
($var) 0.34 ms Performance Graph 100%
$var==true 0.46 ms Performance Graph 135%
$var===true 0.37 ms Performance Graph 109%

Discussion: This was surprising to me, and somewhat defies explanation given that if($var) and if($var==true) should be equivalent expressions in the back end of php. It's too bad too that trying to be clear with your code has performance implications. I think if($var==true) is far more clear than if($var) because it also implies that we are dealing with boolean typed variables rather then possibly numbers or strings. Of course if($var===true) is even more clear and indeed faster, so I will continue to use this expression whereever it is applicable.