PHP:undefined offset in explode()

前端之家收集整理的这篇文章主要介绍了PHP:undefined offset in explode()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个:
list($firstname,$lastname) = explode(' ',$queryString);

Sometiems $lastname没有被定义,它在那里我得到未定义的偏移量错误.

因为它找不到任何东西放在$lastname,我想.

之后爆炸()我有:

if(!$lastname) { $lastname = $firstname; }

所以我的问题是如何定义$lastname如果$lastname没有被定义(如果你只写’Adam’而不是’Adam Thompson’,那么最后的名字应该被定义为’Adam Adam’)

它现在对我来说,但是我收到了偏移量错误

list($firstname,$lastname) = array_pad(explode(' ',$queryString,2),2,null);

在explode()中的2确保,最多有2个值,array_pad()确保至少有2个值.如果没有空格,$lastname为null.这可以用来决定下一步

$lastname = is_null($lastname) ? $firstname : $lastname;

小更新:对于这种具体情况,您可以使用一个小技巧

list($firstname,$queryString);

这将在一个步骤中做到这一切.它应该是工作,因为

>总是至少有一个值($firstname)
>如果有一个值,那么$queryString == $firstname.现在这是用来填充数组的值最多为2个值(正好是一个,因为我们已经有一个值)
>如果有两个值,那么数组没有填充$queryString,因为我们已经有2个值

至少对于可读性,我更喜欢第一个更明显的解决方案.

猜你在找的PHP相关文章