PHP if 语句:零与'empty'



我正在使用高级自定义字段插件创建一个WordPress网站。我有一套网球成绩表。在模板中,我显示如下字段:

<?php if(get_field('my_field')) : ?>
<?php echo get_field('my_field'); ?>
<?php endif; ?>

问题是有些分数是零,所以他们没有出现。我理解这是因为0基本上等于null,所以这个语句是false。

我发现并尝试过的一个解决方案是:

<?php if(get_field('my_field') !== false) : ?>
<?php echo get_field('my_field'); ?>
<?php endif; ?>

然而,这意味着空字段现在也会显示出来,这是不可取的,因为有很多字段在空的情况下会被隐藏。

所以,我的问题是,有没有一种方法可以表达一个允许零的if语句,而如果字段为空,仍然返回false?请注意,有些分数不是纯粹的数字,其值如"6(1("。

为了检查空字符串,必须在if条件中显式检查它们。

<?php if(get_field('my_field') !== '') : ?>
<?php echo get_field('my_field'); ?>
<?php endif; ?>

原因是在布尔检查的情况下,0nullempty stringempty array的计算结果都为(但并不完全为(false。

最新更新