我想回顾一下我原来的问题:Populating a calendar with PHP foreach code
在本地主机服务器上工作时,脚本可以正常工作,但是在线上传时,日历不会出现,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
为空。
foreach(array_merge(array_values($history), array_values($events)) as $event)
但我的系统有时不会计划任何事件,因此空$event
,所以我的问题是,如何绕过foreach以显示日历,无论如何使用一个或另一个空变量?
答案 0 :(得分:2)
if(!empty($history) || !empty($events)){
foreach(array_merge(array_values($history), array_values($events)) as $event){...}
}
在您的情况下这将是一个更好的解决方案(删除if条件):
$history = (!empty($history))?$history:array();
$events = (!empty($events))?$events:array();
foreach(array_merge(array_values($history), array_values($events)) as $event){...}
答案 1 :(得分:0)
if(!empty($ array)){ ... }
这将在foreach之前检查。