我有一段完美无瑕的代码:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array($db->quoteName('date')));
$query->from($db->quoteName('#__webfoot_minutes_and_agendas'));
$query->order('date DESC');
$db->setQuery($query);
$results = $db->loadObjectList();
直到我尝试将其分配给一个函数:
function call_db() {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(array($db->quoteName('date')));
$query->from($db->quoteName('#__webfoot_minutes_and_agendas'));
$query->order('date DESC');
$db->setQuery($query);
$results = $db->loadObjectList();
return $results;
}
当我尝试调用该函数时它会中断,我得到$ result的错误,“为foreach()提供了无效的参数...:
call_db();
foreach ($results as $result) {
$dateArr = explode('-', $result->date);
if (!in_array($dateArr[0], $already_echoed)) {
echo '<li><a href="#tabs-' . $count . '">' . $dateArr[0] . '</a></li>';
$count++;
}
$already_echoed[] = $dateArr[0];
}
任何人对如何理顺这种语法都有任何建议吗?
答案 0 :(得分:2)
您必须将函数的结果赋值给变量。
$results = call_db();
答案 1 :(得分:1)
虽然设计很糟糕:
foreach (call_db() as $result) { ... }
答案 2 :(得分:0)