En cuanto a la velocidad, estoy de acuerdo con Niels, es probable que sea insignificante.
En cuanto a cuál de las afirmaciones es mejor probar, la respuesta probablemente dependa de la conversión esperada y de los valores $ variable que pueda tener.
Si $ variable usa 0 y 1 como indicador verdadero/falso, entonces si ($ variable) o si (! $ Variable) funcionaría, pero si es un resultado entero como en strpos() se encontrará con problemas ... si es posible, recomendaría usar un valor booleano real en lugar de 0/1.
... tal vez esto ayude a aclarar; comente las variaciones de $ var para ver los diversos resultados.
<?php
$var = true;
$var = 1;
$var = false;
$var = 0;
if ($var) {
echo 'var = true <br />';
}
if ($var === true) {
echo 'var is a boolean and = true';
}
if (!$var) {
echo 'var = false <br />';
}
if ($var === false) {
echo 'var is a boolean and = false';
}
Lo intenté y no puedo confirmar su reclamo. –