1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

Merge branch 'PHP-8.4'

* PHP-8.4:
  Coerce numeric string keys from iterators when argument unpacking
This commit is contained in:
Ilija Tovilo
2025-07-22 17:48:06 +02:00
3 changed files with 42 additions and 0 deletions

32
Zend/tests/gh18581.phpt Normal file
View 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"

View File

@@ -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;
}
}
}

View File

@@ -2518,6 +2518,11 @@ send_again:
}
name = Z_STR_P(&key);
zend_ulong tmp;
if (ZEND_HANDLE_NUMERIC(name, tmp)) {
name = NULL;
}
}
}