Re: BC break between PHP 5.6.5 and PHP 5.6.6
| From: | Leigh | Date: | Fri, 27 Feb 2015 08:20:46 +0000 |
| Subject: | Re: BC break between PHP 5.6.5 and PHP 5.6.6 | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-83975@lists.php.net to get a copy of this message | ||
On 27 February 2015 at 08:06, Sebastian Bergmann <sebastian@php.net> wrote:
> While working on PHPUnit today I noticed one test of its own test
> suite failing on PHP 5.6.6 that passes on PHP 5.6.5. The details of
> this can be found at
>
> https://github.com/sebastianbergmann/phpunit/issues/1630
>
> Florian Margaine reduced the problem to the following minimal,
> self-contained, reproducing script:
>
> 1 <?php
> 2 class Foo extends Exception
> 3 {
> 4 public function __construct()
> 5 {
> 6 $this->code = 123;
> 7 }
> 8 }
> 9
> 10 try
> 11 {
> 12 throw new Foo;
> 13 }
> 14
> 15 catch (Exception $e)
> 16 {
> 17 assert($e->code === 123);
> 18 }
>
> The above script works as expected on PHP 5.6.5 but errors out on
> PHP 5.6.6:
>
> PHP Fatal error: Cannot access protected property Foo::$code in
> /home/sb/exception.php on line 17
> PHP Stack trace:
> PHP 1. {main}() /home/sb/exception.php:0
>
> I do not see a change in http://php.net/ChangeLog-5.php#5.6.6
> that would
> explain this.
Looking through git blames, this property has been protected for a long time.
Possibly related (although not at all sure), Dmitry made some changes
to zend_read_property()
https://github.com/php/php-src/commit/3e31838d19750d287431d22e9290856ec962fd6a