加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:undefined offset in explode()

发布时间:2020-12-13 13:13:32 所属栏目:PHP教程 来源:网络整理
导读:我有这个: list($firstname,$lastname) = explode(' ',$queryString); Sometiems $lastname没有被定义,它在那里我得到未定义的偏移量错误. 因为它找不到任何东西放在$lastname,我想. 之后爆炸()我有: if(!$lastname) { $lastname = $firstname; } 所以我的
我有这个:
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个值

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读