Depende de lo que haya en la variable, pero de por sí PHP retorna como cierto cuando una variable existe y tiene algún valor. Por mi parte no me gusta usar esa forma porque para eso crearon empty o isset y además no es una buena forma de programar. Si el valor de la variable tiene por ejemplo un espacio en blanco te retornará como cierto y con empty ya solucionas el problema. Ejemplos
Código PHP:
Ver original<?php
$foo = '';
if($foo){
echo 'foo';
}// No imprime en pantalla foo
$foo = ' ';
if($foo){
echo 'foo';
}// Imprime en pantalla foo
$foo = ' ';
echo 'foo';
}// No imprime en pantalla foo
Otro detalle de porque no uso esa forma, es que si tienes indicado el error_reporting como E_ALL solamente, te dará una notificación como que anteriormente no haz declarado la variable, si es que no la mencionas anteriormente. Ejemplos
Código PHP:
Ver original<?php
if($foo){
echo 'foo';
}// Notice: Undefined variable: foo in {ruta hacia el archivo} on line 2
echo 'foo';
}// No imprime foo en pantalla ni tampoco la notificación
// También lo puedes verificar con isset
echo 'foo';
}// No imprime foo en pantalla ni tampoco la notificación
Siempre es bueno usar este tipo de funciones para evitarte problemas en el futuro.