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

问题描述 投票:1回答:4

我有以下代码:

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

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

php html placeholder
4个回答
4
投票

如果您想在线执行操作,可以随时使用三元运算符:

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

1
投票

我将扩展上面的答案,并以一个简短的PHP方式来做到这一点:

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

<?= ?><?php echo '' ?>的替代品

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


1
投票

如果你使用的是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 : '') ?>">

1
投票

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

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开始,可以使用这个缩短版本的三元版本。

如果函数返回的“空”值是??,则空合并运算符(null)也将起作用。它专门解决空值,因此它不适用于空字符串或其他假值。

© www.soinside.com 2019 - 2024. All rights reserved.