如果另一个字符串为空,如何在PHP中将默认值设置为字符串?
最好的例子是向您展示如何用Javascript解决这个问题:如果另一个字符串为空,如何在PHP中将默认值设置为字符串?,php,javascript,string,if-statement,Php,Javascript,String,If Statement,最好的例子是向您展示如何用Javascript解决这个问题: var someString = someEmptyString || 'new text value'; 在这个javascript示例中,我们检测到“someEmptyString”为空,并自动将该值设置为“new text value”。这在PHP中可能吗?最短的(代码)方法是什么 我现在就是这样做的: if ($someEmptyString == "") $someString = 'new text value'
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';
你可以使用
我认为这是最正确的方法。检查该变量是否为空,或者是否未设置并运行条件
这仍然是一段代码,但在执行时不应该出现任何PHP警告或错误。虽然Tritanal更清楚发生了什么,但您也可以这样设置变量
($someString = $someEmptyString) || ($someString = "Default");
适用于所有PHP版本,您可以扩展此功能以轻松使用多个选项
($someString = $someEmptyString) ||
($someString = $someOtherEmptyString) ||
($someString = "Default");
我个人觉得它比它的三元等价物可读性更高短一点:someEmptyString?someEmptyString:'新文本值';可能的重复,这里的“0”会发生什么?@Haozhun条件失败。这是否意味着答案包含一个微妙的错误?@Haozhun不确定这是否是一个错误。
'0'
的错误是相当标准的PHP行为。我不打算修改答案,因为这会使它变得毫无意义。您必须执行empty($someEmptyString)?'新文本值“:$someEmptyString
,这不是很有用的代码。但是,如果您使用此代码,那么您应该记住一个很好的观点。
($someString = $someEmptyString) || ($someString = "Default");
($someString = $someEmptyString) ||
($someString = $someOtherEmptyString) ||
($someString = "Default");