php - 表达式echo 5 ? : 1; 为何输出5
PHPz
PHPz 2017-04-10 16:49:43
[PHP讨论组]

不是该输出null(空)吗?

PHPz
PHPz

学习是最好的投资!

全部回复(4)
伊谢尔伦

就是三元运算符的简单写法,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的话,返回第一个参数。

ringa_lee
a ? a : b;
//可以缩写为
a ?: b;
//所以上面句 句子等效为:
echo  5 ? 5  : 1 ;

a ?: b; 中,如果 a为表达式则,表达式不会再次执行,而a ? a : b; 若表达式返回ture,则会再次执行一遍

黄舟

因为5是真啊

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号