php中的三元运算符是否有较短的语法?
如何创建以下内容的较短表达式:php中的三元运算符是否有较短的语法?,php,syntax,conditional-statements,Php,Syntax,Conditional Statements,如何创建以下内容的较短表达式: $variable = @$array["property"] ? $array["property"] : DEFAULT_VALUE_CONSTANT; 对这样的事情: $variable = @$array["property"] || DEFAULT_VALUE_CONSTANT; 现在我得到了true/false是的,在PHP7中可以使用(??) 如果您使用的是PHP版本$a$b$c是的,但作为@Fred ii-您的PHP版本必须是=7。再次询问为什
$variable = @$array["property"] ? $array["property"] : DEFAULT_VALUE_CONSTANT;
对这样的事情:
$variable = @$array["property"] || DEFAULT_VALUE_CONSTANT;
现在我得到了
true
/false
是的,在PHP7中可以使用(??
)
如果您使用的是PHP版本<7,一个解决方案是使用
请避免使用@
而不是isset()
参考文献:
是的,在PHP7中可以使用(
??
)
如果您使用的是PHP版本<7,一个解决方案是使用
请避免使用@
而不是isset()
参考文献:
更短?为什么要更短?@JayBlanchard,因为测试要设置的属性是返回的属性。这对我来说是多余的。零合并?PHP7=>
$a$b$c
是的,但作为@Fred ii-您的PHP版本必须是=7
。再次询问为什么要抑制错误,您可以使用isset
函数。显然,现在在PHP7中可以使用Null合并运算符。更短?为什么要更短?@JayBlanchard,因为测试要设置的属性是返回的属性。这对我来说是多余的。零合并?PHP7=>$a$b$c
是的,但作为@Fred ii-您的PHP版本必须是=7
。再次询问为什么要抑制错误,您可以使用isset
函数。显然,现在在PHP7中可以使用空合并运算符。Yes@fred ii-对此进行了评论。但是我的主机提供商现在支持5.6.7。我想我也无能为力了。@KristosAthanasiadis猫王接线员怎么样<代码>$array[“属性”]?:默认值\u常量代码>你完全正确。那就是我要找的接线员!你能编辑你的答案吗?谢谢!它按预期工作,是的,不需要错误抑制最终需要抑制@(因此部分忽略前面的注释),否则我需要使用完整的三元运算符,因为如果使用isset(),我将得到一个真|假结果,而不是测试为setYes@fred ii的变量-对此进行了注释。但是我的主机提供商现在支持5.6.7。我想我也无能为力了。@KristosAthanasiadis猫王接线员怎么样<代码>$array[“属性”]?:默认值\u常量代码>你完全正确。那就是我要找的接线员!你能编辑你的答案吗?谢谢!它按预期工作,是的,不需要错误抑制最终需要抑制@(因此部分忽略前面的注释),否则我需要使用完整的三元运算符,因为如果使用isset(),我将得到一个真|假结果,而不是要设置的测试变量
$variable = $array["property"] ?? DEFAULT_VALUE_CONSTANT;
$variable = $array["property"] ?: DEFAULT_VALUE_CONSTANT;