ARRAY_SUM()将参数1表示为ARRAY,NULL GIVEN

时间:2014-05-11 17:14:29

标签: php

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

ARRAY_SUM()将参数1视为阵列,为空目标

 <?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();
}
?>

2 个答案:

答案 0 :(得分:0)

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

$ratings_array = array();
$wpQuery = etc

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

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

答案 1 :(得分:0)

如果值不为空,我只是做了一个有条件的尝试显示。

if (count($ratings_sum) === 0) {

    echo author_rating_total();

}