Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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
错误日志:PHP警告:遇到非数字值_Php - Fatal编程技术网

错误日志:PHP警告:遇到非数字值

错误日志:PHP警告:遇到非数字值,php,Php,更新到PHP7.3后,我得到以下错误 PHP警告:在第3702行的/functions.PHP中遇到非数值 第3702行: $total += $rating['rating_score']; 功能代码: function airkit_get_rating( $post_id ) { if ( is_numeric($post_id) ) { $rating_items = get_post_meta($post_id, 'ts_post_rating', TRUE); i

更新到PHP7.3后,我得到以下错误

PHP警告:在第3702行的/functions.PHP中遇到非数值

第3702行:

$total += $rating['rating_score'];
功能代码:

function airkit_get_rating( $post_id ) {

if ( is_numeric($post_id) ) {
    $rating_items = get_post_meta($post_id, 'ts_post_rating', TRUE);
    if ( isset($rating_items) && is_array($rating_items) && !empty($rating_items) ) {
        $total = '';
        foreach($rating_items as $rating) {
            $total += $rating['rating_score'];
        }
        if ( $total > 0 ) {
            $round = intval($total) / count($rating_items);
            $result = round($round, 1);

            if ( is_int($round) ) {
                if ( $round == 10 ) return $result;
                else return $result . '.0';
            } else {
                return $result;
            }
        } else {
            return;
        }
    }
} else {
    return;
}}
我没有PHP方面的经验。有人能帮我纠正这个错误吗?

更改

$total = '';


您试图向字符串中添加一个数字,但该字符串看起来不像一个数字。空字符串被转换为数字0,因此您可以得到正确的总数,但它也会产生警告。

您应该将$total初始化为0,而不是。您正在尝试添加字符串和数字。它会自动将字符串转换为数字,但现在它会生成一个警告。实际上,这不是一个新的警告,我在PHP5中复制了它。升级可能更改了默认的错误报告级别。这似乎解决了问题。但是我注意到,如果$rating['rating_score']也是一个字符串,同样的错误也会被触发。是的,但为什么会是字符串呢?如果你试图连接你使用的字符串,不是+。
$total = 0;