mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00

This is necessary because `zend_get_attribute_object()` will use the persistent string with the parameter name as the index for a newly created non-persistent HashTable, which is not legal. As parameter names are expected to be short-ish, reasonably common terms and need to sit around in memory anyways, we might as well make them an interned string, circumstepping the issue without needing to duplicate the parameter name into a non-persistent string.
22 lines
471 B
PHP
22 lines
471 B
PHP
--TEST--
|
|
Verify that attributes for internal functions correctly support named arguments.
|
|
--EXTENSIONS--
|
|
zend_test
|
|
--FILE--
|
|
<?php
|
|
|
|
$reflection = new ReflectionFunction("zend_test_attribute_with_named_argument");
|
|
$attribute = $reflection->getAttributes()[0];
|
|
var_dump($attribute->getArguments());
|
|
var_dump($attribute->newInstance());
|
|
|
|
?>
|
|
--EXPECTF--
|
|
array(1) {
|
|
["arg"]=>
|
|
string(3) "foo"
|
|
}
|
|
object(ZendTestAttributeWithArguments)#3 (1) {
|
|
["arg"]=>
|
|
string(3) "foo"
|
|
}
|