用于if stament的PHP快捷方式

时间:2015-11-23 15:00:31

标签: php

我目前正在学习PHP,我发现了一些代码,希望有人能帮我解释一下。我在表单输入中出现错误时使用它,因此刷新后输入不会为空,但在他/她按下提交之前包含用户的输入。

PHP部分

if(isset($_POST['submit'])){
  $checkUsername = null; // just in case
  $checkUsername = $_POST['username'];
};

HTML部分

<form method="post">
   <label for="username" class="control-label">Username</label>
   <input name="username" type="text" class="form-control" placeholder="Enter username" value="<?php echo !empty($checkUsername)?$checkUsername:'';?>"> 
   <button type="submit" name="submit" id="submit" class="btn btn-success">Create user</button>
</form>

&#34;捷径&#34;我不明白是:

<?php echo !empty($checkUsername)?$checkUsername:'';?>

我通常这样做的方式是:

if(!empty($checkUsername)){
   echo $checkUsername;
}else{
   echo "";
};

是否有可以查找此类快捷方式的网页?

2 个答案:

答案 0 :(得分:1)

使用此:

echo (!empty($checkUsername)) ? $checkUsername: '';

它用作"(condition) ? (true return value) : (false return value)"语句来缩短你的if / else结构。

答案 1 :(得分:1)

这称为Ternary Operator

您使用它的方式通常从语言构造,变量赋值或简单表达式语句开始。

  

示例:

     

$ a = $ b === 3? 1:2; //如果b等于3,$ a将是   被指定为1其他2

     

匹配()? go_forward():go_backward(); // 这个   调用匹配函数,如果返回值的计算结果为true,则调用   会调用go_forward函数调用go_backward   功能

以下是官方网站Doc

的一小部分内容
  

从php版本5.3开始,

     

你也可以在表达式expr1 ?: expr3中使用它   如果expr1的计算结果为TRUE则返回expr1,否则返回expr3