mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-8.4'
* PHP-8.4: Coerce numeric string keys from iterators when argument unpacking
This commit is contained in:
commit
aba6b89399
3 changed files with 42 additions and 0 deletions
32
Zend/tests/gh18581.phpt
Normal file
32
Zend/tests/gh18581.phpt
Normal file
|
@ -0,0 +1,32 @@
|
|||
--TEST--
|
||||
GH-18581: Coerce numeric string keys from iterators when argument unpacking
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function g() {
|
||||
yield '100' => 'first';
|
||||
yield '101' => 'second';
|
||||
yield '102' => 'third';
|
||||
yield 'named' => 'fourth';
|
||||
}
|
||||
|
||||
function test($x = null, $y = null, ...$z) {
|
||||
var_dump($x, $y, $z);
|
||||
var_dump($z[0]);
|
||||
var_dump($z['named']);
|
||||
}
|
||||
|
||||
test(...g());
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(5) "first"
|
||||
string(6) "second"
|
||||
array(2) {
|
||||
[0]=>
|
||||
string(5) "third"
|
||||
["named"]=>
|
||||
string(6) "fourth"
|
||||
}
|
||||
string(5) "third"
|
||||
string(6) "fourth"
|
|
@ -5392,6 +5392,11 @@ ZEND_VM_C_LABEL(send_again):
|
|||
}
|
||||
|
||||
name = Z_STR_P(&key);
|
||||
|
||||
zend_ulong tmp;
|
||||
if (ZEND_HANDLE_NUMERIC(name, tmp)) {
|
||||
name = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
5
Zend/zend_vm_execute.h
generated
5
Zend/zend_vm_execute.h
generated
|
@ -2518,6 +2518,11 @@ send_again:
|
|||
}
|
||||
|
||||
name = Z_STR_P(&key);
|
||||
|
||||
zend_ulong tmp;
|
||||
if (ZEND_HANDLE_NUMERIC(name, tmp)) {
|
||||
name = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue