来自list()的PHP未定义偏移量

时间:2014-06-25 06:36:22

标签: php

list(,,,,,,,,,$user, $pass) = explode("\t", $line);
if(trim($user) == $_POST['username'] && trim($pass) == $_POST['password'] )

消息未定义偏移量10,消息未定义偏移量9。 9和10是$ user和$ pass。我该如何修复错误?并且未定义的偏移意味着它没有被声明或什么?和theres很多,,,,,,,,是因为theres值,但我不需要它为这个PHP

1 个答案:

答案 0 :(得分:7)

在此上下文中,

undefined offset意味着您在调用list时需要的参数多于等式右侧数组中的参数。

您期望一个长度为10的数组,但explode("\t", $line)返回的数组少于10个。

您需要确保在$line中使用正确数量的制表符分隔值,或使用array_pad填充explode的输出。

下面是使用array_pad确保数组长度为10的示例:

list(,,,,,,,,,$user, $pass) = array_pad(explode("\t", $line), 10, null);

如果$line未包含足够的标签分隔值,则$user$pass将采用值null