【发布时间】:2023-02-18 07:54:07
【问题描述】:
我使用的是 PHP 8.1,在拆分不在字符串中的内容时出现错误。 这不是 PHP 7.4 的问题。
$str = "This string has no dash";
list($a, $b) = explode('-', $str, 2);
Error : Undefined array key 1
手册没有提到这种行为。 https://www.php.net/manual/en/function.explode.php
那么发生了什么?
【问题讨论】:
-
3v4l.org/BqsbK 这似乎也在 7.4 上引发了问题。你能解释一下你的用例吗,你为什么要分解不是字符串的东西?
-
为什么您希望在
explode()文档中对此进行描述?问题在于分配给列表——元素的数量必须匹配。 -
@JacobMulquin 你为什么认为它不是字符串?
-
您不需要
explode()也能看到此错误:list ($a, $b) = ["foo"];将产生相同的错误。 -
我认为 7.4 和 8.0 之间的变化是这从警告变成了错误。而且我猜你没有显示警告,所以你没有注意到这个问题。