diff --git a/src/php/handlers/php_deque_handlers.c b/src/php/handlers/php_deque_handlers.c index 07ba92c..f86a8a3 100644 --- a/src/php/handlers/php_deque_handlers.c +++ b/src/php/handlers/php_deque_handlers.c @@ -37,7 +37,7 @@ static zval *php_ds_deque_read_dimension // If we're accessing by reference we have to create a reference. // This is for access like $deque[$a][$b] = $c - if (value && type != BP_VAR_R) { + if (value && type != BP_VAR_R && type != BP_VAR_IS) { ZVAL_MAKE_REF(value); } diff --git a/src/php/handlers/php_map_handlers.c b/src/php/handlers/php_map_handlers.c index 0b46c5a..628e0cf 100644 --- a/src/php/handlers/php_map_handlers.c +++ b/src/php/handlers/php_map_handlers.c @@ -35,7 +35,7 @@ static zval *php_ds_map_read_dimension // If we're accessing by reference we have to create a reference. // This is for access like $map[$a][$b] = $c - if (value && type != BP_VAR_R) { + if (value && type != BP_VAR_R && type != BP_VAR_IS) { ZVAL_MAKE_REF(value); } diff --git a/src/php/handlers/php_set_handlers.c b/src/php/handlers/php_set_handlers.c index 44dc001..1a7b732 100644 --- a/src/php/handlers/php_set_handlers.c +++ b/src/php/handlers/php_set_handlers.c @@ -20,7 +20,7 @@ static zval *php_ds_set_read_dimension } // Only support read, not write. - if (type != BP_VAR_R) { + if (type != BP_VAR_R && type != BP_VAR_IS) { return &EG(uninitialized_zval); } diff --git a/src/php/handlers/php_vector_handlers.c b/src/php/handlers/php_vector_handlers.c index 58fe1e7..d3053d3 100644 --- a/src/php/handlers/php_vector_handlers.c +++ b/src/php/handlers/php_vector_handlers.c @@ -37,7 +37,7 @@ static zval *php_ds_vector_read_dimension // If we're accessing by reference we have to create a reference. // This is for access like $deque[$a][$b] = $c - if (value && type != BP_VAR_R) { + if (value && type != BP_VAR_R && type != BP_VAR_IS) { ZVAL_MAKE_REF(value); }