Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:将大量数组作为参数传递的函数_Php_Arrays_Function - Fatal编程技术网

PHP:将大量数组作为参数传递的函数

PHP:将大量数组作为参数传递的函数,php,arrays,function,Php,Arrays,Function,我需要创建一个函数,它将有大量的参数可以是null或value。现在我创建函数,如下例所示: function container($args){ $args += array( 'limit' => 10, 'container' => null, 'container_class' => null,

我需要创建一个函数,它将有大量的参数可以是null或value。现在我创建函数,如下例所示:

function container($args){

    $args += array(
            'limit'             =>      10,
            'container'         =>      null,
            'container_class'   =>      null,
            'list_class'        =>      null,
        );

    echo'<'.$args['container'].' class="'.$args['container_class'].'" >';

    echo 'My function will have other content here with the '.$args['limit'];

    echo '<ul class="'.$args['list_class'].'" >';
    echo '<li>list itme here</li>';
    echo '</ul>'

    echo '</'.$container.'>';    

}
函数容器($args){
$args+=数组(
“限制”=>10,
“容器”=>null,
“容器类”=>null,
'list_class'=>null,
);
回声';
echo“我的函数将在此处包含其他内容,其中包含“$args['limit]”;
echo'
    ”; 回显“
  • 在此处列出itme
  • ”; 回音“
” 回声'; }
若我必须在数组中传递4-5个值,这是可以的,但若我要传递的键超过15-20,该怎么办?必须有一些适当的方法来实现

那么,我如何才能以如此高效的方式创建一个函数来传递许多数组键作为参数呢


非常感谢

15-20个键实际上不是一个大数组。当您需要考虑如何将某些内容传递到args时,您需要有1000多个键

无论如何,您可以使用“通过引用传递”概念(请参阅)。当您必须在不返回任何语句的情况下将变量修改为函数时,此概念非常有用。 但是为了实现这个目标,PHP不发送变量的副本,只发送一个在内存中引用变量的键

这个键不依赖于变量的大小

如何使用?在函数声明中使用&symbol 例:

但是如果使用“通过引用传递”概念,请小心不要修改$args,否则$args将在主脚本上被修改


最终世界:如果您的密钥少于50个,则不关心如何传递参数,只需按副本使用(默认行为)将更安全

Kakawait的最后一句话是真的


调用函数时应使用
$args
而不是
&$args

我正在查看您提供的参考资料。与此同时,我仍然对
&
和您上次关于
$args
$args
的声明感到困惑。你能帮我说得更清楚些吗?我给你举了一个更详细的例子:。正如您所看到的,使用引用或复制变量并没有区别,只是声明不同。但正如我所说的,如果在函数中修改变量,在使用引用时要小心,它也会在主脚本上被修改(如示例所示),PHP只会在变量内容发生更改时复制变量内容。所以这里可能不需要通过引用进行传递。@Duald我不知道。所以如果你说你是真的。但是你有没有引用这种行为的链接?@Kakawait信息有点隐藏,但它在手册中
function container(&$args) 
{
    // your function
}

$args = array(1, 2, 3 ..., 100000);
container($args);