PHP の制限の 1 つは、オブジェクトが常に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
ます。関連する可能性のある質問。そして2011年からのSymfonyの問題。