if($ variable)的工作方式到底如何?
  可能重复: 
  关于PHP中的if语句 
在PHP脚本中 - 像这样的if语句检查什么?
<?php if($variable){ // code to be executed } ?>  
我已经多次看到它在脚本中使用,现在我真的想知道它“寻找什么”。 它不会错过任何东西; 它只是一个在if语句中的简单变量......我无法在任何地方找到任何关于此的结果,所以很明显,我会看起来很愚蠢。
  构造if ($variable)测试以查看$variable是否计算为任何“真值”值。  它可以是布尔值TRUE ,也可以是非空值,非NULL值或非零值。  查看PHP文档中布尔评估的列表。 
从PHP文档:
var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
  但请注意, if ($variable)不适合在测试变量或数组键是否已初始化时使用。  如果它的变量或数组键不存在,则会导致E_NOTICE Undefined variable $variable 。 
  如果将$variable转换$variable布尔值,并根据该转换的结果进行操作。 
有关更多信息,请参阅布尔文档。
要明确地将一个值转换为布尔值,可以使用(bool)或(boolean)强制转换。 但是,在大多数情况下, 转换是不必要的,因为如果运算符 ,函数或控制结构需要布尔参数, 则会自动转换值。
  以下列表解释了在PHP中认为评估为false的内容: 
每个其他值都被视为TRUE(包括任何资源)。
来源:http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
  在你的问题中,一个变量是在if()语句内求值的。  如果该变量未设置,则根据上面的列表将其评估为false。  如果它已设置或具有值,则它将评估为true,因此将在if()分支内执行代码。 
