Php 在空值和0之间进行差异

Php 在空值和0之间进行差异,php,Php,这是一种输入足球比赛结果的表格 表单从db获取已经输入的数据,并将其写入html表单的value参数中。如果db中的值为NULL,那么在html中 value=""` 重要的是,没有输入的游戏不会在数据库中进行更改,所以我会在执行查询之前对其进行过滤。但现在可能会发生一场比赛以0:0结束,但db不会保证这一点。我怎么能说系统不是空的/空的,它是0 if(!empty($_POST[$tore_heim] OR !empty($_POST[$tore_gast]))){

这是一种输入足球比赛结果的表格

表单从db获取已经输入的数据,并将其写入html表单的value参数中。如果db中的值为NULL,那么在html中

value=""`
重要的是,没有输入的游戏不会在数据库中进行更改,所以我会在执行查询之前对其进行过滤。但现在可能会发生一场比赛以0:0结束,但db不会保证这一点。我怎么能说系统不是空的/空的,它是0

      if(!empty($_POST[$tore_heim] OR !empty($_POST[$tore_gast]))){
         $spiele_save = "UPDATE spiele SET tore_heim = '".$_POST[$tore_heim]."', tore_gast = '".$_POST[$tore_gast]."' WHERE id_spiele = ".$spiele_id[$i]."";    
         $spiele_save = mysqli_query($con, $spiele_save);};
        };

检查值是否为
'0'
!空($_POST[$tore_gast]))|$_POST[$tore_gast]==='0'

看看这个例子

函数isEmpty($variable){

}

如果(!isEmpty($tore_heim)){

}谢谢你,德克塞

    if(isset($_POST[$tore_heim]) && strlen($_POST[$tore_heim]) > 0 
    OR
    isset($_POST[$tore_gast]) && strlen($_POST[$tore_gast]) > 0)

问题解决了

isset(…)和&strlen(…)>0
…?!也许可以使用
==
进行检查==操作员。这可能会有帮助。简单的答案是,看看,你会发现,零被认为是EMPTY@RiggsFolly那么,如何绕过它并使
'0'
不为空?@Fabrizio Cocco我认为deceze的答案最好是isset(…)&&strlen(trim(…)>0这会有访问未定义索引并产生警告的风险!当
为空时,它会尝试访问
$\u POST[$tore\u gast]
,这可能意味着它不存在或
0
。既然已经将值设置为
isset
,为什么还要再次测试
empty
。isset只检查变量是否已设置,然后检查变量是否不包含任何空值@那就用
$变量
,它具有相同的结果,并且不使用多余的错误抑制<代码>空的
设置的
+
,您已经完成了
设置
,不要(隐式)重复它。
    // run your code here...
    if(isset($_POST[$tore_heim]) && strlen($_POST[$tore_heim]) > 0 
    OR
    isset($_POST[$tore_gast]) && strlen($_POST[$tore_gast]) > 0)