PHP列表函数的可选参数

PHP列表函数的可选参数,php,arrays,tuples,Php,Arrays,Tuples,我的代码中有这样一行: list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user); 最后3个参数可能存在,也可能不存在。如果数组小于预期值,是否有类似于list的函数会自动忽略最后的参数?只需在字符串末尾添加一些备用管道即可: list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||'); 问题解决了 注意:如果

我的代码中有这样一行:

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

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

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

list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');
问题解决了


注意:如果您正在加载任意管道分隔的数据,您可能希望使用函数而不是
explode();然后可以设置一些默认值并使用:

$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);

list
不是一个函数。“忽略”是指“不分配任何内容”或“分配空值”?你不应该想要这个。在范围中按名称定义变量时,应始终创建该变量。空变量会发生什么情况?不应该创建它们吗?这会弄乱下面的代码…我只希望它们为空。顺便说一句,PHP社区在回答这些问题方面比Java社区快得多!!这似乎是一个更好的解决方案,正是我想要实现的。谢谢你,马克。
$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);