【发布时间】:2015-11-24 18:43:23
【问题描述】:
如果数组的索引为空,我会运行一个 while 循环。但是,当我使用explode 方法时,它会在while ($temptext[1] == null) 中抛出一个未定义的偏移错误。但是,如果我将爆炸线注释掉,它就不再抛出未定义的偏移错误。我对那部分感到困惑,因为 $temptext[1] 无论是否爆炸都是空的。那么为什么其中一个会引发错误,而另一个不会呢?最后,我该如何解决这个问题,这样我就可以使用 while 循环来比较空数组索引而不会引发错误?
$temptext = null;
$count = 1;
$text = ",";
$textX = "Hello there";
while ($temptext[1] == null && $count > 0) {
$count--;
$temptext = explode($text,$textX,2);
}
P.S:我在 PhpFiddle.org 上运行这个 sn-p。
【问题讨论】:
-
而不是
$temptext[1] == null使用isset($temptext[1]) -
@DannyPhantom 如果我使用它,while 循环甚至都不会运行。
-
我的错,是
!isset($temptext[1]) -
@DannyPhantom 是的。你说得对。现在可以了。你能解释一下为什么吗?原始代码在我的网络服务器上运行良好。这只发生在 PhpFiddle 上。哇。我刚投了反对票。
标签: php arrays explode undefined-index