PHP获取所有函数参数为$ key => $ value array?

web*_*ver 5 php

<?php
function register_template(){
    print_r(func_get_args());
    # the result was an array ( [0] => my template [1] => screenshot.png [2] => nice template .. ) 

}

register_template(     # unkown number of arguments
    $name = "my template",
    $screenshot = "screenshot.png",
    $description = "nice template .. "
)
?>
Run Code Online (Sandbox Code Playgroud)

但是,我希望结果数组为$ key => $ value form,$ key表示参数名称.

dec*_*eze 14

PHP不支持任意数量的命名参数.您可以在函数声明中决定固定数量的参数及其名称,也可以只获取值.

通常的方法是使用数组:

function register_template($args) {
    // use $args
}

register_template(array('name' => 'my template', ...));
Run Code Online (Sandbox Code Playgroud)

  • @web你*将*需要为你想要完成的事情. (10认同)

use*_*432 12

想要做同样的事情并且对已经给出的答案并不完全满意....

尝试将此添加到您的功能 - >

$reflector = new ReflectionClass(__CLASS__);
$parameters = $reflector->getMethod(__FUNCTION__)->getParameters();

$args = array();
foreach($parameters as $parameter)
{
    $args[$parameter->name] = ${$parameter->name};
}
print_r($args);
Run Code Online (Sandbox Code Playgroud)

我没有考虑过试图让它成为你自己的功能但你可以打电话,但也许能......