. Fixed bug #70300 (Syntactical inconsistency with new group use syntax).
(marcio dot web2 at gmail dot com)
. Fixed bug causing exception traces with anon classes to be truncated. (Bob)
- . Fixed bug #70321 (Magic getter breaks reference to array property). (Bob)
- PDO_OCI:
. Fixed bug #70308 (PDO::ATTR_PREFETCH is ignored). (Chris Jones)
+++ /dev/null
---TEST--
-Bug #70321 (Magic getter breaks reference to array property)
---FILE--
-<?php
-
-class foo {
- private $bar;
- public function __construct() {
- $this->bar = new bar();
- }
-
- public function &__get($key) {
- $bar = $this->bar;
- // no direct reference to $this->bar
- return $bar;
- }
-}
-
-class bar { public $baz = []; }
-
-$foo = new foo();
-$foo->bar->baz[] = function() {};
-var_dump($foo->bar->baz);
-
-?>
---EXPECTF--
-array(1) {
- [0]=>
- object(Closure)#%d (0) {
- }
-}
#define zval_ptr_dtor(zv) i_zval_ptr_dtor(zv ZEND_FILE_LINE_CC)
#define READY_TO_DESTROY(zv) \
- (EXPECTED(zv) && Z_REFCOUNTED_P(zv) && Z_REFCOUNT_P(zv) == 1 && (EXPECTED(Z_ISREF_P(zv) == 0) || Z_REFCOUNTED_P(Z_REFVAL_P(zv)) && Z_REFCOUNT_P(Z_REFVAL_P(zv)) == 1))
+ (UNEXPECTED(zv) && Z_REFCOUNTED_P(zv) && Z_REFCOUNT_P(zv) == 1)
#define EXTRACT_ZVAL_PTR(zv, check_null) do { \
zval *__zv = (zv); \