如果为空,如何添加默认值?
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
,空合并运算符 (??
) 也将起作用。它专门处理空值,因此它不适用于空字符串或其他错误值。
我有以下代码:
<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
,空合并运算符 (??
) 也将起作用。它专门处理空值,因此它不适用于空字符串或其他错误值。