PHP的一个限制是对象总是评估为true.但是,SplFileinfo(以及Symfony的UploadedFile等子类)的行为有所不同:
$a = new ArrayIterator(); // or any other class $b = new SplFileInfo(__FILE__); // file used is not important if ($a) echo 'true'; // 'true' if (!$a) echo 'false'; // nothing because $a is true if ($b) echo 'true'; // 'true' if (!$b) echo 'false'; // Catchable fatal error: Object of class // SplFileInfo could not be converted to boolean
这是一个错误吗?测试在5.3和5.4. SplFileObject也会发生这种情况.可能related question.和2011年的a Symfony issue.