如果为空,如何添加默认值?

How to add a default value if empty?

我有以下代码:

<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo info_username_get_meta( 'your_name' ); ?>">

如果值为空,我如何向其中添加默认文本?提前致谢!

如果您想内联操作,您始终可以使用三元运算符:

value="<?php echo (!empty(info_username_get_meta( 'your_name' )) ? info_username_get_meta( 'your_name' ) : 'DEFAULT NAME' ; ?>"

或者拆分出来,在上面的代码中赋值:

<?php
$name = (!empty(info_username_get_meta( 'your_name' )) ? info_username_get_meta( 'your_name' ) : 'DEFAULT NAME';
?>
<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo $name; ?>">

我将对上述答案进行扩展并提供一个简短的 php 方法:

value="<?= info_username_get_meta( 'your_name' ) ?? 'DEFAULT NAME'; ?>"

<?= ?><?php echo '' ?>

的替代品

?? 是三元运算符的替代品,基本上如果第一个有数据就会使用它,否则它会打印第二个。

如果您使用的是 php 7+,您可以这样做:

<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo (info_username_get_meta( 'your_name' ) ?? '') ?>">

否则你可以使用:

<input class="mt upbb" type="text" name="your_name" id="your_name" value="<?php echo (!empty($value = info_username_get_meta( 'your_name' )) ? $value : '') ?>">

如果 info_username_get_meta 函数是您的,您可以修改它以将默认值作为第二个参数,并且 return 如果它没有找到第一个参数的任何内容

function info_username_get_meta($username, $default)
{
    $meta = // whatever happens with $username to get meta
    return $meta ?: $default;
}

我认为这会使演示代码更清晰一些。

如果您无权访问该函数,您可以使用此表达式

<?php echo info_username_get_meta( 'your_name' ) ?: 'default value'; ?>

?: 运算符是一个缩短的三元运算符。它计算左边的值,除非它是假的,在这种情况下它使用右边的值。自 PHP 5.3.

以来可以使用此缩短版本的三元组

如果函数 returns 的 "empty" 值为 null,空合并运算符 (??) 也将起作用。它专门处理空值,因此它不适用于空字符串或其他错误值。