是什么($ _ POST [''])?_ POST ['']:false

时间:2015-07-07 13:28:51

标签: php ternary-operator

isset($_POST['usrnm'])?$_POST['usrnm']:false;实际上做了什么?它比isset($_POST['usrnm']) {}好吗?

2 个答案:

答案 0 :(得分:2)

是三元运营商。这转化为:

if (isset($_POST['usrnm']))
  $userName = $_POST['usrnm']
else
  $userName = false;

以上代码或以下代码:

isset($_POST['usrnm'])?$_POST['usrnm']:false;
  1. 检查是否已设置$_POST['usrnm']变量(可以通过POST的表单设置。)
  2. 如果已设置,则将设置$userName值。否则,它设置为false
  3. 第二个问题

    isset($_POST['usrnm']) {}
    

    上面的代码看起来像语法错误。

答案 1 :(得分:1)

isset($_POST['usrnm'])?$_POST['usrnm']:false;实际上做了什么?

?:是三元运算符。

$userName = isset($_POST['usrnm']) ? $_POST['usrnm'] : false; // you must have some variable to assign the value

检查usrnm数组中是否存在$_POST值。如果不是,则返回false。如果存在值,则返回usrnm的值。

等效if..else

if (isset($_POST['usrnm'])) {
    $userName = $_POST['usrnm'];
} else {
    $userName = false;
}

是否优于isset($_POST['usrnm']) {}

它只是节省了一些打字。两者都是一样的。

Blog