PHP列表函数的可选参数

时间:2013-03-12 15:31:43

标签: php arrays tuples

我的代码中有这样的一行:

list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);

最后3个参数可能存在也可能不存在。是否存在类似于list的函数,如果数组小于预期,它将自动忽略那些最后的参数?

3 个答案:

答案 0 :(得分:32)

list($user_id, $name, $limit, $remaining, $reset)
    = array_pad(explode('|', $user), 5, null);

答案 1 :(得分:8)

如果您担心SDC的解决方案感觉“hacky”;然后你可以设置一些默认值并使用:

$user = '3|username';

$defaults = array(NULL, NULL, 10, 5, FALSE);
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user) + $defaults;

var_dump($user_id, $name, $limit, $remaining, $reset);

答案 2 :(得分:6)

只需在字符串的末尾添加一些备用管道:

list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');

问题解决了。

注意:如果您正在加载任意竖线分隔数据,则可能需要使用str_getcsv()函数而不是explode()