今天用了wyo版型,發現安裝完後會有這樣的錯誤碼:
warning: array_merge() [function.array-merge]: Argument #1 is not an array in /sites/all/themes/wyo/template.php on line 318.
然後打開該檔案,line318內容如下: ';$output .= '
整段
<?php
function wyo_primary_links($links) {
$num_links = count($links);
$i = 1;
$output = '';
foreach ($links as $index => $link) {
$class = 'plink';
// Add first, last and active classes to the list of links to help out themers.
if ($i == 1) {
$class .= ' first';
}
if ($i == $num_links) {
$class .= ' last';
}
$plink_div_class = 'plink_div';
if (($link['href'] == $_GET['q']) || ($path == '' && drupal_is_front_page())) {
$plink_div_class = $plink_div_class .' active';
}
//以下開始是 line 318
$output .= '
';
$i++;
}
$output .= '';
return $output;
}
?>
不知問題出在哪邊?
Re: array_merge的問題
array_merge() 是用來結合兩個(以上)陣列
所以傳入的參數必須是陣列的資料
錯誤訊息是指傳入的第一個參數並非陣列
比較常見的是為了省事,沒有事先判斷資料,造成空值傳入的時候導致錯誤
這邊的話 在 foreach 下面一行加上
if(!isset($link['attribute'])) $link['attribute'] = array();
判斷傳入的選單項目內的屬性資料不存在的時候,預設值為空陣列即可