表达式echo 5 ? : 1; 为何输出5
程序员文章站
2024-04-05 11:54:12
...
不是该输出null(空)吗?
回复内容:
不是该输出null(空)吗?
就是三元运算符的简单写法,5为真就输出5了。
文档有解释:三元运算符
表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
因为5大于0,所以返回true,php三元表达式省略第二个参数时,判断结果又是true的话,返回第一个参数。
a ? a : b;
//可以缩写为
a ?: b;
//所以上面句 句子等效为:
echo 5 ? 5 : 1 ;
a ?: b; 中,如果 a为表达式则,表达式不会再次执行,而a ? a : b; 若表达式返回ture,则会再次执行一遍
因为5是真啊
上一篇: PHP数组依照概率返回的算法
下一篇: php gd库的安装与PHP伪静态
推荐阅读
-
表达式echo 5 ? : 1; 为何输出5
-
(JAVA练习)用Java输出1-100中所有被5整除的数,每三个数字换一行
-
WAS5.x 下使用 Log4j 为何没有日志输出的详细分析及解决办法 log4jWebsphereApache应用服务器Eclipse
-
此代码运作后为何会输出5
-
php正则表达式学习手册(1/5)
-
c语言:输入一个数,从高位向低位输出,如:输入12345,输出1 2 3 4 5
-
php正则表达式学习手册(1/5)
-
js正则表达式之$1$2$3$4$5$6$7$8$9属性,返回子匹配的结果
-
面试题解法二:逆波兰表达式计算'1 + (5 - 2) * 3'
-
输出1~n以内能被3和5整除的数字(continue用法)