【问题标题】:PHP While loop Notice: Undefined offsetPHP While 循环注意:未定义的偏移量
【发布时间】:2016-03-29 01:26:51
【问题描述】:

我正在修复现有的 PHP 代码

我得到错误

Notice: Undefined offset: 6

PHP 代码如下所示。这是一个很大的while循环。这里我只展示主要部分。

$data = Array
(
    [0] => 1
)

$data2 = Array
(
    [0] => 1
    [1] => 10
    [2] => 12
    [3] => 15
    [4] => 17
    [5] => 23
)


$i = 0;
while($data[$i]){
    array_push($data,$data2);
    $i++;
}

还有,

有时会出错

Notice: Undefined offset: 4

$data2 = Array
(
    [0] => 12
    [1] => 34
    [2] => 56
    [3] => 78
    [4] => 83
)

我该如何解决这个问题?

【问题讨论】:

  • while( isset($data[$i]) ) { 条件必须是布尔值TRUEFALSE。虽然您最好使用 foreach 循环遍历数组。
  • 什么???我不明白你在这里做什么......你将整个数组 $data2 添加到 $data 的末尾,而 $data 中有一个值对我来说听起来毫无意义......?
  • @JuniusRendel 我知道这段代码很混乱。我仍在试图弄清楚开发人员在编写此代码时的想法。

标签: php while-loop


【解决方案1】:

您应该使用 foreach 来遍历数组:

foreach($data as $key => $value) {}

您对while 的警告是您确实检查了此数组位置是否正确存在。改用这个:

while(isset($data[$i])){}

【讨论】:

  • 注意:while条件中使用isset,因为条件需要等同于布尔值TRUE/FALSEisset 会做什么(也处理未定义的偏移量)。
  • 感谢 Richard Reiber 和 @ʰᵈˑ
猜你喜欢
  • 1970-01-01
  • 2015-07-23
  • 2023-03-27
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
相关资源
最近更新 更多