Per quanto riguarda la velocità, sono d'accordo con Niels, probabilmente è trascurabile.
Per quanto riguarda l'istruzione se è meglio testare, la risposta dipende probabilmente dal cast previsto e dai valori che può avere la variabile $.
Se $ variabile usa 0 e 1 come una bandiera vero/falso, allora se ($ variabile) o se (! $ Variabile) funzionerebbe, ma se è un risultato intero come in strpos() ti imbatterai in problemi ... se possibile, ti consigliamo di utilizzare un valore booleano effettivo anziché 0/1.
... forse questo aiuterà a chiarire; commenta le variazioni di $ var per vedere i vari risultati.
<?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';
}
fonte
2009-11-03 21:45:44
Ho provato e non posso confermare il reclamo. –