isset PHP isset($_GET['something']) ?$_GET['某物'] : ''

2022-08-30 12:33:25

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

我理解正常的定位操作,例如,但我不理解 ?,再次重复 get,: 或 ''。有人可以帮我分解这个问题,或者至少为我指出正确的方向吗?if(isset($_GET['something']){ If something is exists, then it is set and we will do something }


答案 1

它通常被称为“速记”或三元运算符

$test = isset($_GET['something']) ? $_GET['something'] : '';

方法

if(isset($_GET['something'])) {
    $test = $_GET['something'];
} else {
    $test = '';
}

要分解它:

$test = ... // assign variable
isset(...) // test
? ... // if test is true, do ... (equivalent to if)
: ... // otherwise... (equivalent to else)

或。。。

// test --v
if(isset(...)) { // if test is true, do ... (equivalent to ?)
    $test = // assign variable
} else { // otherwise... (equivalent to :)

答案 2

在 PHP 7 中,你可以写得更短:

$age = $_GET['age'] ?? 27;

这意味着,如果变量在 URL 中提供,则该变量将设置为参数,或者默认为 27。$ageage

查看 PHP 7 的所有新功能


推荐