PHP的侷限性之一是對象始終評估爲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