最好的例子是向您展示如何在Javascript中解决这个问题:
var someString = someEmptyString || 'new text value';
在这个javascript示例中,我们检测到'someEmptyString'为空并自动将值设置为'new text value'。在PHP中这是可能的吗?最简单的(代码)方法是什么?
我现在就是这样做的:
if ($someEmptyString == "")
$someString = 'new text value'; else $someString = $someEmptyString;
这让我困扰了很长一段时间,如果有人知道更好的方法,我会非常感激。谢谢!
答案 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");
我个人觉得它比三元等价物更具可读性