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। और 2011 से a Symfony issue.
और कोई और सोचता है कि यह एक विशेषता है ;-) – Tamlyn