Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的三元运算符是否有较短的语法?_Php_Syntax_Conditional Statements - Fatal编程技术网

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;