【发布时间】:2011-08-26 13:34:18
【问题描述】:
我有以下代码:
$final = array();
foreach ($words as $word) {
$query = "SELECT Something";
$result = $this->_db->fetchAll($query, "%".$word."%");
foreach ($result as $row)
{
$id = $row['page_id'];
if (!empty($final[$id][0]))
{
$final[$id][0] = $final[$id][0]+3;
}
else
{
$final[$id][0] = 3;
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];
}
}
}
代码似乎可以正常工作,但我收到以下警告:
Warning: Cannot use a scalar value as an array in line X, Y, Z (the line with: $final[$id][0] = 3, and the next 2).
谁能告诉我如何解决这个问题?
【问题讨论】:
-
这是真正的代码吗?我试图重现该问题,但我无法...
-
@alvaro-g-vicario 您是正确的,列出的代码缺少会导致错误的语句。需要
$final[$id] = $row['page_id'];之类的东西才能让 PHP 抱怨 -
那是真正的代码。是复制粘贴
-
如果数据库返回0作为值,而你的变量是数组,则需要从db读取后重新定义为数组。
-
严重错误!您检查 $final[$id][0] 是否不为空,但如果它为空,则 0 null... 根本不是数组,所以它将 100% 发生!
标签: php arrays zend-framework warnings scalar