我有以下代码:
<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
函数是你的,你可以修改它以将默认值作为第二个参数,如果没有为第一个参数找到任何内容,则返回它
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
)也将起作用。它专门解决空值,因此它不适用于空字符串或其他假值。