如果另一个字符串为空,如何在PHP中设置字符串的默认值

How to set default value to a string in PHP if another string is empty?

本文关键字:字符串 PHP 设置 默认值 另一个 如果      更新时间:2023-09-26

最好的例子是向您展示如何在Javascript中解决这个问题:

var someString = someEmptyString || 'new text value';

在这个javascript示例中,我们检测到"someEmptyString"为空,并自动将该值设置为"new text value"。这在PHP中可能吗?最短的(代码)方法是什么?

这就是我现在的做法:

if ($someEmptyString == "")
    $someString = 'new text value'; else $someString = $someEmptyString;

这困扰了我很长一段时间,如果有人知道更好的方法,我将不胜感激。非常感谢。

您可以使用三元运算符?:

如果你有PHP 5.3,这是非常优雅的:

$someString = $someEmptyString ?: 'new text value';

在5.3之前,它需要更详细一点:

$someString = $someEmptyString ? $someEmptyString : 'new text value';
$someString = (!isSet( $someEmptyString ) || empty( $someEmptyString ) )? "new text value" : $someEmptyString;

我认为这样做是最正确的。检查该var是否为空,或者是否未设置并运行条件。

它仍然是一些代码,但在执行时不应该得到任何PHP警告或错误。

您可以使用三元运算符

$someString = $someEmptyString ?: "New Text Value";

虽然三进制更清楚发生了什么,但您也可以设置类似的变量

($someString = $someEmptyString) || ($someString = "Default");

适用于所有PHP版本,您可以将其扩展为使用1个以上的选项失败,也可以轻松使用

($someString = $someEmptyString) ||
($someString = $someOtherEmptyString) ||
($someString = "Default");

我个人发现它比它的三元等价更可读