我目前正在学习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 "";
};
是否有可以查找此类快捷方式的网页?
答案 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