gpt4 book ai didi

PHP:explode() 中 undefined offset

转载 作者:可可西里 更新时间:2023-10-31 22:53:34 24 4
gpt4 key购买 nike

我有这个:

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

Sometiems $lastname does not gets defined, and it's there I getting undefined offset error.

我猜是因为它找不到任何可以放入 $lastname 的东西。

在 explode() 之后我有:

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

所以我的问题是,如果未定义 $lastname,我如何将其定义为 $firstname(如果您只写了“Adam”而不是“Adam Thompson”,则应定义姓氏,因此它是“Adam Adam”)

它现在为我做了这个,但我收到了偏移量错误

最佳答案

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

explode() 中的 2 确保至多 2 个值和 array_pad()确保至少 2 个值。如果没有空格字符 ,则 $lastnamenull。你可以用它来决定接下来会发生什么

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

小更新:对于这种特定情况,您可以使用一些小技巧

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

这将一步完成所有这些。它应该可以工作,因为

  • 总是至少有一个值($firstname)
  • 如果只有一个值,则 $queryString == $firstname。这就是现在用于填充数组最多 2 个值的值(恰好是一个,因为我们已经有了一个值)
  • 如果有两个值,则数组不填充$queryString,因为我们已经有2个值

至少为了可读性,我更喜欢第一个更明显的解决方案。

关于PHP:explode() 中 undefined offset ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com