Array_sum()期望参数1为array, null给定


ARRAY_SUM() EXPECTS PARAMETER 1 TO BE ARRAY, NULL GIVEN

奇怪的问题,这在我的本地安装上运行良好,但在我的实时服务器上,当值为0时抛出错误。

ARRAY_SUM()期望参数1为ARRAY, NULL给定

 <?php 
function author_rating_total() {
   $user_id = get_the_author_meta( 'ID' );
   $query = array (
       'author' => $user_id,
       'suppress_filters' => 'true', //lets skip some unnessecery sql queries
       'posts_per_page' => -1
   );
   $queryObject = new WP_Query($query); while($queryObject->have_posts()) : $queryObject->the_post();
   $post_ratings_data = get_post_custom(get_the_id());
   $post_ratings_score = intval($post_ratings_data['epicredvote'][0]);
   $ratings_array[] = $post_ratings_score;
   endwhile; 
   $ratings_sum = array_sum($ratings_array);
   if ($ratings_sum > 0) {
         $ratings_sum = '' . $ratings_sum;
   }  
   echo $ratings_sum;   
   wp_reset_query();
}
?>

如果你在while循环之前定义了$ratings_array,那么它应该可以工作

$ratings_array = array();
$wpQuery = etc

如果你在array_sum()周围包装条件语句:

$ratings_sum = 0;
if (is_array($ratings_array)){
    $ratings_sum = array_sum(etc);
}

我刚刚做了一个条件,如果值不为空,尝试显示

if (count($ratings_sum) === 0) {
    echo author_rating_total();
}