我的代码中有这样一行:
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user);
最后 3 个参数可能存在也可能不存在。如果数组小于预期,是否有类似于 list 的函数会自动忽略这些最后的参数?
list($user_id, $name, $limit, $remaining, $reset)
= array_pad(explode('|', $user), 5, null);
如果您担心 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);
只需在字符串的末尾添加一些备用管道:
list($user_id, $name, $limit, $remaining, $reset) = explode('|', $user.'||||');
问题解决了。
注意:如果您正在加载任意以管道分隔的数据,您可能希望使用str_getcsv()
function 而不是explode()
.