0

我收到一个我无法解决的错误。

错误是:

Uninitialized string offset: 1

代码是:

if($play_count_within_45_minutes[1] > $play_history_old_over_45_minutes_ago[$i][1]){...}

错误发生在$play_count_within_45_minutes[1]变量上,因为当我将索引更改为0(如$play_count_within_45_minutes[0])时,它工作正常。

我让它显示值是什么,并且输出很好,使用以下代码:

print_r($play_count_within_45_minutes[1]);

输出是:

1.0E+80

原始变量声明为:

$play_count_within_45_minutes = [0, 100000000000000000000000000000000000000000000000000000000000000000000000000000000];

我不认为这个数字太大,因为我尝试更改它1并且我得到了同样的错误。

我发现它与这个循环有关(print_r()在我测试它的时候就在那里,它给出了同样的错误):

for($i=0; $i <= (count($play_history_old_over_45_minutes_ago)-1); $i++ ){
    echo "<br>";
    print_r($play_count_within_45_minutes[1]);
    echo "<br>";
    if($play_count_within_45_minutes[1] > $play_history_old_over_45_minutes_ago[$i][1]){
        $play_count_within_45_minutes = $play_history_old_over_45_minutes_ago[$i][1];
    }
}
4

1 回答 1

0

好吧,我找到了我无法弄清楚的原因。

我不知道 PHP 错误是它将原始if语句之后的所有内容视为同一行,因此即使错误在第 105 行,它仍然告诉我它在第 104 行。

但是,我仍然不知道为什么要更改原件$play_count_within_45_minutes[1]$play_count_within_45_minutes[0]解决问题。尽管如此,这仍然会有问题。

固定代码是:

for($i=0; $i <= (count($play_history_old_over_45_minutes_ago)-1); $i++ ){
    echo "<br>";
    print_r($play_count_within_45_minutes[1]);
    echo "<br>";
    if($play_count_within_45_minutes[1] > $play_history_old_over_45_minutes_ago[$i][1]){
        $play_count_within_45_minutes[1] = $play_history_old_over_45_minutes_ago[$i][1];
    }
}

这似乎是一个愚蠢的错误,但我真的不知道 PHP 将if语句后面的整行视为同一行。

于 2013-07-10T20:35:48.750 回答