首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP语法问题:问号和冒号是什么意思?

PHP语法问题:问号和冒号是什么意思?
EN

Stack Overflow用户
提问于 2009-08-14 17:27:00
回答 2查看 141.9K关注 0票数 78

可能重复:

quick php syntax question

代码语言:javascript
复制
return $add_review ? FALSE : $arg;

问号和冒号是什么意思?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-14 17:27:43

这是PHP ternary operator (也称为条件运算符)-如果第一个操作数的计算结果为true,则计算为第二个操作数,否则计算为第三个操作数。

可以将其视为可以在表达式中使用的"if“语句。在根据某些条件进行简明的赋值时非常有用,例如

代码语言:javascript
复制
$param = isset($_GET['param']) ? $_GET['param'] : 'default';

还有一个速记版本(PHP5.3及以上版本)。您可以省略中间的操作数。如果为真,则运算符将计算为第一个操作数,否则将计算为第三个操作数。例如:

代码语言:javascript
复制
$result = $x ?: 'default';

值得一提的是,当使用$_GET或$_POST变量时,上面的代码将抛出未定义的索引通知,并防止我们需要使用更长的版本,isseta null coalescing operator是在PHP7中引入的:

代码语言:javascript
复制
$param = $_GET['param'] ?? 'default';
票数 159
EN

Stack Overflow用户

发布于 2009-08-14 09:34:33

它是if-else运算符的三元形式。上面的语句基本上是这样的:

代码语言:javascript
复制
if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}

有关PHP中三元op的更多详细信息,请参阅此处:http://www.addedbytes.com/php/ternary-conditionals/

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1276909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档