【发布时间】:2013-02-18 22:39:55
【问题描述】:
我想更新这个问题:Populating a calendar with PHP foreach code
由于某种奇怪的原因,问题再次出现,它说我为 foreach 提供的参数无效。奇怪的是,它在我的本地主机网站上运行良好。
结果应该是代码应该显示一个填充的日历。它在我的本地主机服务器上运行,但在网站上不在线。我很困惑。
这已经为我的本地主机服务器修复了它:
foreach(array_merge(array_values($history), array_values($events)) as $event)
但是当我把网站放到网上时,chrome 只是给了我这个:
<b>Warning</b>: array_values() [<a href='function.array-values'>function.array-values</a>]: The argument should be an array in <b>/home/flyeurov/public_html/lib/skins/flyeuro/events/events_index.tpl</b> on line <b>30</b>
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-merge</a>]: Argument #2 is not an array in <b>/home/flyeurov/public_html/lib/skins/flyeuro/events/events_index.tpl</b> on line <b>30</b>
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/flyeurov/public_html/lib/skins/flyeuro/events/events_index.tpl</b> on line <b>30</b><br />
确认数组 $history 和 $events 可以工作。
【问题讨论】:
-
如何确认?以及如何工作?因为显然
$events不是一个数组。 -
解决问题的第一件事就是将碎片移出 foreach。
$hist = array_merge(array_values($history);$ev=array_values($events);var_dump($hist);var_dump($ev);这样你就可以看到数据发生了什么。 -
$events和$history在不同的文件中。 foreach 语句位于 .tpl 文件中,其中应用了两个变量。我所做的确认它有效,首先用默认的foreach ($events as $event)替换了foreach,但它没有用。当我用默认版本替换 .tpl 时,一切正常。我认为那可行吗? -
Philipp 在下面的回答中是正确的,$history 或 $events 不是导致其余问题的数组,第一个警告证实了这一点。
-
正如我所说的
$events不是一个数组。它是一个对象或其他东西,但不是一个数组。 @zzwyb89