Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
警告:内爆():在functions.php第674行中传递的参数无效_Php_Invalid Argument - Fatal编程技术网

警告:内爆():在functions.php第674行中传递的参数无效

警告:内爆():在functions.php第674行中传递的参数无效,php,invalid-argument,Php,Invalid Argument,我试图在完成网站后上网,但出现了一个错误 警告:内爆():在functions.php第674行中传递的参数无效 foreach ( $one_array_font as $font => $variants ) { $font = str_replace(' ', '+', $font); $variants = implode(',', array_values($variants['variant']) ); $all_final_fonts[] = $fon

我试图在完成网站后上网,但出现了一个错误 警告:内爆():在functions.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']);
}
foreach($one\u array\u font作为$font=>$variants){
$font=str_replace(“”,“+”,$font);
$variants=内爆(“,”,数组_值($variants['variant']);
$all_final_fonts[]=$font.:'.$variants;
}

$gfont=内爆(“|,$all_final_font);/* 您看到该警告是因为$all_final_字体不是数组


关于这个问题,我认为信息还不够充分,但我认为正在发生这样的事情:

  • 首先,
    $one\u array\u font
    为空

  • 这意味着永远不会运行
    foreach()
    循环

  • 这意味着行
    $all_final_fonts[]=$font.:'.$variants从不运行

  • 我猜
    $all\u final\u font
    之前没有定义。因此,当代码到达
    内爆时,它仍然是未定义的

  • 内爆()
    失败,因为它要求输入字段是数组,但您给了它一个未定义的变量

解决方案

通过在
foreach()
循环之前添加以下行,确保定义了
$all\u final\u font

$all_final_fonts = array();
这将把变量初始化为数组,这样如果没有任何数据,
infrade()
就不会抱怨它


希望有帮助。

第674行是什么?我不是一个巫师,有代码$gfont=内爆(“|”,$all_final_font);有什么问题吗?请使用var\u dump($all\u final\u font)。尝试声明
$all\u final\u font=array()外部循环我认为您应该在“foreach”循环之前声明$all_final_字体数组,这样如果$one_数组_循环为空,它就不会崩溃($all_final_字体未定义)