首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >isset PHP isset( $_GET['something'] )?$_GET[‘something’]:'‘

isset PHP isset( $_GET['something'] )?$_GET[‘something’]:'‘
EN

Stack Overflow用户
提问于 2012-08-26 07:17:59
回答 8查看 225K关注 0票数 36

我希望扩展我的PHP知识,我遇到了一些东西,我不确定它是什么,甚至不知道如何搜索它。我正在查看php.net isset代码,我看到了isset($_GET['something']) ? $_GET['something'] : ''

我理解正常的isset操作,例如if(isset($_GET['something']){ If something is exists, then it is set and we will do something },但我不理解?,即再次重复get、:或'‘。有没有人能帮我分析一下,或者至少给我指出正确的方向?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-08-26 07:29:56

它通常被称为“速记”或Ternary Operator

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

手段

代码语言:javascript
复制
if(isset($_GET['something'])) {
    $test = $_GET['something'];
} else {
    $test = '';
}

要分解它,请执行以下操作:

代码语言:javascript
复制
$test = ... // assign variable
isset(...) // test
? ... // if test is true, do ... (equivalent to if)
: ... // otherwise... (equivalent to else)

或者..。

代码语言:javascript
复制
// test --v
if(isset(...)) { // if test is true, do ... (equivalent to ?)
    $test = // assign variable
} else { // otherwise... (equivalent to :)
票数 82
EN

Stack Overflow用户

发布于 2016-07-25 20:11:34

在PHP7中,你可以写得更短:

代码语言:javascript
复制
$age = $_GET['age'] ?? 27;

这意味着$age变量将被设置为age参数(如果它是在URL中提供的),或者它将缺省为27。

查看所有new features of PHP 7

票数 12
EN

Stack Overflow用户

发布于 2012-08-26 07:21:47

这就是所谓的三元运算符,它主要用来代替if-else语句。

在您给出的示例中,它可用于从给定isset返回true的数组中检索值

代码语言:javascript
复制
isset($_GET['something']) ? $_GET['something'] : ''

等同于

代码语言:javascript
复制
if (isset($_GET['something'])) {
 echo "Your error message!";
} else {
 $test = $_GET['something'];
}

echo $test;

当然,除非您将其分配给某个对象,甚至可能为用户提交的值分配一个默认值,否则它没有多大用处。

代码语言:javascript
复制
$username = isset($_GET['username']) ? $_GET['username'] : 'anonymous'
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12126420

复制
相关文章

相似问题

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