ACF allow zero as a value

时间:2016-03-03 作者:kpixel

我希望有0到5,以及“n/a”作为可能的值,但是当我希望此代码输出0时,它将输出“n/a”。如何使其输出“0”?

(“如果未设置值,则占位符为“n/a”。)

Difficulty: <?php if(get_field(\'difficulty\'))  { echo the_field(\'difficulty\');} else { echo "n/a"; }  ?>

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

在PHP中,0 == false == [] == \'\' == null. 检查变量或条件是否有值的简单检查将返回false 如果该值等于0。

对于0 要将true作为有效值返回,需要使用相同的(===)运算符。记住,如果你使用===, 不仅值必须匹配,类型也必须匹配,否则条件将返回false。如果值是字符串,则应使用\'0\', 如果它们是整数值(,我怀疑自定义字段值是作为单个值的字符串),那么应该使用0.

您可以执行以下检查

$difficulty = get_field( \'difficulty\' );
if (    $difficulty // Check if we have a valid value
     || \'0\' === $difficulty // This assumes \'0\' to be string, if integer, change to 0
) {
    $value = $difficulty;
} else {
    $value = \'n/a\';
}
echo \'Difficulty: \' . $value;

SO网友:Nik

<?php 
$some = get_field(\'difficulty\')
if($some != \'\')  { echo $some;} else { echo "n/a"; }  
?>
the_field 功能是其自身回声。