Peter Cowburn wrote:

> On 3 December 2014 at 20:35, Christoph Becker <cmbecke...@gmx.de> wrote:
> 
>> Hello internals,
>>
>> today I stumbled over issue #65213[1] which has been reported as a bug,
>> but was changed to a feature request without any hint why the conversion
>> of SplFileInfo instances to boolean throws a catchable fatal error.
>>
>> Even worse, due to optimizations in OPcache (and maybe other optimizers
>> as well), this does not always happen.  Consider the following snippet:
>>
>>     <?php
>>
>>     $o = new SplFileObject('.');
>>     if (!$o) {
>>     } else {
>>         var_dump(!$o);
>>     }
>>
>> Without any optimization this throws the error in line 4 (the if
>> clause); with OPcache the error is thrown in line 6.  Apparently that is
>> caused by a optimization where BOOL_NOT,JMPZ is converted to NOP,JMPNZ[2].
>>
>> IOW: with OPcache enabled `if (!$o)` works fine, but without OPcache it
>> is an error.  IMHO both should behave identically.
>>
>> [1] <https://bugs.php.net/bug.php?id=65213>
>>
> 
> This looks fixed in master (https://github.com/php/php-src/commit/8904f72
> <https://github.com/php/php-src/commit/8904f72d7c47253345f7039afd8ca754442c7e34>
> ).

Indeed, thanks.  <http://3v4l.org/1fHVC> confirms that.  However, if the
former behavior is regarded as a bug, shouldn't it be fixed for PHP 5.5
and PHP 5.6 as well?

Anyhow, the bug report/feature request might be closed.

-- 
Christoph M. Becker


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to