PHPの制限の1つは、オブジェクトが常にtrue
と評価されることです。しかしSplFileinfo
(例えばsymfonyのUploadedFile
などとサブクラス)異なる振る舞い:SplFileInfoをブール値に変換できないのはなぜですか?
$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。そしてa Symfony issueから2011.
他の人はそれが機能だと思っています;-) – Tamlyn