array_values dropped references
It should preserve them. This was breaking pass-by-reference via ReflectionFunction::invokeArgs.
Esse commit está contido em:
@@ -703,7 +703,7 @@ Array Array::keys(CVarRef search_value /* = null_variant */,
|
||||
Array Array::values() const {
|
||||
ArrayInit ai(size(), ArrayInit::vectorInit);
|
||||
for (ArrayIter iter(*this); iter; ++iter) {
|
||||
ai.set(iter.secondRef());
|
||||
ai.set(withRefBind(iter.secondRef()));
|
||||
}
|
||||
return ai.create();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
$b = 'b';
|
||||
|
||||
$a = array(&$b);
|
||||
var_dump(array_values($a));
|
||||
@@ -0,0 +1,4 @@
|
||||
array(1) {
|
||||
[0]=>
|
||||
&string(1) "b"
|
||||
}
|
||||
Referência em uma Nova Issue
Bloquear um usuário