【发布时间】:2013-07-10 20:22:18
【问题描述】:
我遇到了一个我无法解决的错误。
错误是:
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];
}
}
【问题讨论】:
-
你的 PHP 版本是多少?
$var = [];声明数组直到 v5.4 php.net/manual/en/language.types.array.phpAs of PHP 5.4 you can also use the short array syntax, which replaces array() with []. -
你能发布 sizeof($play_count_within_45_minutes) 的输出吗?
-
看看this answer。
-
@Sean 这是很好的信息。我在手册中注意到了这一点。我确实通过在值上运行
print_r来检查它以确保它可以读取。
标签: php