php if语句工作不正常

php if语句工作不正常,php,if-statement,Php,If Statement,我不知道为什么,但是一些空白值仍然会通过我的if语句过滤掉。。。当我回显json编码的版本时,有些值有“键”,但“值”不包含任何内容。有什么想法吗 function graph_fees($competitors, $fee_graph_data){ foreach ($competitors as $competitor) { if (!empty($competitor->minSingleCareFee)) {

我不知道为什么,但是一些空白值仍然会通过我的
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);

在创建数据时可能会出现空白,请在检查之前对其进行修剪()

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

包含空格的字符串不是空的。截至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
确实包含一些内容

试一试


它将跳过像
”\n“

什么是
变量转储($competitor->minSingleCareFee)输出?将其添加到
foreach
(在
if
语句之外)。它们可能是
null
,如果您回显
null
,它将不可见。如果“blanks”通过,则不存在blank。。请在开始之前尝试trim()if@LozCherone所以你的意思是:如果(!empty(trim($competitor->SingleCareFee))?不,你不能这样做,在if之前做
"" (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 ( isset($competitor->minSingleCareFee) 
             && trim($competitor->minSingleCareFee) != false ) {