[英]PHP: function passing large amount of array as a parameter
我需要创建一个函数,该函数将具有大量可以为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.'>';
}
如果我必须在数组中传递4-5的值,这很好,但是如果我要传递的键超过15-20,该怎么办? 必须有一些适当的方法来实现。
那么,如何以一种有效的方式创建一个函数来将许多数组键作为参数传递呢?
非常感谢
15-20个键并不是一个大数组。 当您需要考虑如何将某些内容传递给args时,就是拥有1000多个键。
无论如何,您都可以使用“通过引用传递”的概念(请参阅http://php.net/manual/en/language.references.pass.php )。 当您必须将变量修改为函数而没有任何返回语句时,此概念很有用。 但是要实现此目标,PHP不会发送变量的副本,而只是发送引用内存中变量的键。
而且此键不取决于变量的大小。
如何使用? 通过在函数声明中使用&符号,例如:
function container(&$args)
{
// your function
}
$args = array(1, 2, 3 ..., 100000);
container($args);
但是,如果您使用“通过引用传递”的概念,请注意不要修改$ args,否则将在主脚本上修改$ args。
最终世界:如果您少于50个键,则不关心如何传递args,仅通过复制使用(默认行为)会更安全!
Kakawait的最后声明是正确的。
调用函数时,应使用$args
而不是&$args
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.