2013-02-21 2 views
0

Я хотел бы вернуться к моему первоначальному вопросу: Populating a calendar with PHP foreach codeForeach проблема с пустыми переменными

При работе на сервере LOCALHOST, скрипт работает, однако при загрузке онлайн, календарь не появляется, и 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, поэтому мой вопрос, как я могу обойти Еогеасп для отображения календаря в любом случае с одним или другими пустыми переменным?

+0

Просто добавьте в merge другой аргумент: 'new array()' – Dharman

+1

, если в прошлом не было событий, $ history должно быть ** пустым массивом **, а не ** пустой переменной ** , Инициализируйте свои переменные правильно, и все будет в порядке. –

ответ

2
if(!empty($history) || !empty($events)){ 
    foreach(array_merge(array_values($history), array_values($events)) as $event){...} 
} 

В вашем случае это будет лучшим решением (Убрано если условие):

$history = (!empty($history))?$history:array(); 
$events = (!empty($events))?$events:array(); 
foreach(array_merge(array_values($history), array_values($events)) as $event){...} 
+0

Календарь исчез теперь. – zzwyb89

+0

Что именно вы делаете в цикле foreach? –

+0

http://pastebin.com/0f5sipJu - результат должен заключаться в том, что календарь должен появиться, даже если переменные пустые, но в них есть события, которые в настоящее время находятся и по-прежнему не отображаются. Я, должно быть, что-то испортил в этом коде. Chrome бросает «Синтаксическая ошибка: неожиданный токен: [' on 'eventdates'. – zzwyb89

0

если { ... }

(пусто ($ массив)!) Это будет проверено, прежде чем выйдет.

Смежные вопросы