On Fri, Apr 3, 2015 at 9:04 PM, Dmitry Stogov <dmi...@zend.com> wrote:

> 1) Division by zero behavior in PHP is really inconsistent.
> It emits WARNING and returns FALLE.
>
> Note, that since PHP-5.6 division by zero may also occur in constant
> expressions. They are compiled and evaluated only once (on first request)
> and on next request WARNING is going to be hidden.
>
> $ cat div.php
> <?php
> class C {
>     const T = 5 / 0;
> }
> var_dump(C::T);
> ?>
>
> $ sapi/cgi/php-cgi -q -T 3 div.php
> PHP Warning:  Division by zero in
> /home/dmitry/php/php-master/CGI-DEBUG/div.php on line 3
> bool(false)
> bool(false)
> bool(false)
>
> I propose to change this into fatal error for division by zero at
> compile-time and exception a run-time.
>
> 2) Very similar weird behavior was introduced for shift with negative
> offsets. I also propose to change it in the same way (Fatal error at
> compile-time, Exception in run-time).
>
> Any thoughts? objections?
>

I'm okay with making both of these exceptions. It's really weird if
dividing two numbers you can suddenly end up with a boolean...

Nikita

Reply via email to