Uno dei limiti di PHP è che gli oggetti vengono sempre valutati su true
. Tuttavia SplFileinfo
(e sottoclassi, come Symfony di UploadedFile
) si comportano in modo diverso:Perché SplFileInfo non può essere convertito in booleano?
$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
È questo un bug? Testato in 5.3 e 5.4. Accade anche con SplFileObject
. Possibile related question. E a Symfony issue dal 2011.
E qualcun altro pensa che sia una caratteristica ;-) – Tamlyn