php-if语句工作不正常


php if statement not working properly

我不知道为什么,但一些空白值仍然会过滤我的if语句。。。当我回显json编码的版本时,有些值有"键",但"值"不包含任何内容。有什么想法吗?

function graph_fees($competitors, $fee_graph_data){
        foreach ($competitors as $competitor) {
            if (!empty($competitor->minSingleCareFee)) {
                $fee_graph_data[$competitor->Home_name] = $competitor->minSingleCareFee;
            } 
        }
        return $fee_graph_data;     
    }

$mm_fees = graph_fees($competitors, $fee_graph_data);
echo json_encode($mm_fees);

创建数据时,空白可能会悄悄进入,请在检查之前对其进行trim()。

<?php 
function graph_fees($competitors, $fee_graph_data = array())
{
    foreach ($competitors as $competitor) {
        $competitor->Home_name = trim($competitor->Home_name);
        $competitor->minSingleCareFee = trim($competitor->minSingleCareFee);
        if (!empty($competitor->minSingleCareFee) && !empty($competitor->Home_name)) {
            $fee_graph_data[$competitor->Home_name] = $competitor->minSingleCareFee;
        }
    }
    return $fee_graph_data;
}

$mm_fees = graph_fees($competitors, $fee_graph_data);
echo json_encode($mm_fees);
?> 
foreach ($competitors as $competitor) {
        $myValue = trim($competitor->minSingleCareFee);
        if (!empty($myValue)) {
            $fee_graph_data[$competitor->Home_name] = $competitor->minSingleCareFee;
        } 
    }

包含空格的字符串不为空。截至php文档:

以下内容被认为是空的:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

所以,如果事情通过了if,$competitor->minSingleCareFee确实包含东西

尝试

if ( isset($competitor->minSingleCareFee) 
             && trim($competitor->minSingleCareFee) != false ) {

它将跳过" ""'n" 等值