2013-05-16 59 views
0

我試圖在完成網站後上線,但發生錯誤 警告:implode():無效參數傳遞在線674上的functions.phpWarning:implode():無效的參數傳遞在線上的函數.php 674

foreach ($one_array_font as $font => $variants) { 
    $font = str_replace(' ', '+', $font); 
    $variants = implode(',', array_values($variants['variant'])); 
    $all_final_fonts[] = $font.':'.$variants; 
} 

$gfont = implode('|', $all_final_fonts); /* <-- This line fails */ 

wp_enqueue_style('zn_all_g_fonts', '//fonts.googleapis.com/css?family='.$gfont.''.$subset); 

if ($data['zn_main_style'] == 'dark') { 
    wp_enqueue_style('zn-dark-style', get_template_directory_uri() . '/css/dark-theme.css',array() ,false,'all'); 
} 

if (!empty ($data['g_fonts_subset'])) { 
    $subset = '&subset='.str_replace(' ' , '' , $data['g_fonts_subset']); 
} 
+6

什麼是674線?我不是一個嚮導 –

+0

有代碼$ gfont = implode('|',$ all_final_fonts);它有錯嗎? – StManozz

+0

我該如何修復 – StManozz

回答

2

在問題沒有真正足夠的信息,但是這是我認爲正在發生的事情:

  • 首先,$one_array_font是空的。

  • 這意味着foreach()循環永遠不會運行。

  • 這意味着行$all_final_fonts[] = $font.':'.$variants;永遠不會運行。

  • 我猜$all_final_fonts之前沒有定義過。因此,當代碼到達implode時,它仍然是未定義的。

  • implode()失敗,因爲它要求輸入字段是一個數組,但您已經給它一個未定義的變量。

確保$all_final_fonts而不管所定義,由foreach()循環之前添加下列行:

$all_final_fonts = array(); 

這將初始化變量爲一個數組,使得implode()如果你沒有任何數據,就不會抱怨。

希望有所幫助。

+0

+1很好解釋 – NullPointer

相關問題