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

时间:2011-06-23 18:52:30

标签: php javascript string if-statement

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

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

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

我现在就是这样做的:

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

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

4 个答案:

答案 0 :(得分:38)

您可以使用ternary operator ?:

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

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

在5.3之前,它需要更冗长:

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

答案 1 :(得分:3)

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

我认为这是最正确的方法。检查var是否为空或者是否未设置和运行条件。

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

答案 2 :(得分:1)

您可以使用ternary operator

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

答案 3 :(得分:0)

虽然三元更清楚发生了什么,但您也可以像这样设置变量

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

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

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

我个人觉得它比三元等价物更具可读性