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

标签 php arrays function

我需要创建一个函数,其中有大量参数可以为 null 或值。现在我正在创建如下示例的函数:

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 将在主脚本中被修改。

Final world:如果您的 key 少于 50 个,则不关心如何传递您的参数,只需复制使用(默认行为)会更安全!

关于PHP:函数将大量数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14291694/

相关文章:

php - Laravel:使用 Auth 驱动程序登录,但没有密码

php - 如何自动将新的 id 值设置为已删除行的 id

PHP mySQL INSERT 语句使用具有整数值的变量

c++ - 如何检查二维数组是否在 C++ 中按升序排列?

arrays - RapidJSON 添加一个结构数组

json - 如何在 matchCondition 中路由所有内容?

c++ - 将变量传递给函数

r - 将函数应用于向量中的每个元素组合

PHP/MySQL 了解准备好的语句返回什么

javascript - Handlebars 数组长度 -1