道歉,如果这是基本的,但我正在学习php。
这段代码实际上做了什么?我已经在插件的源代码中看到了它,但无法弄清楚发生了什么
$_POST['newName'] = $_POST['newName'] == "" ? "Dude" : $_POST['newName'];
感谢。
答案 0 :(得分:1)
这是if ... else的简短版本。这是Ternary Logic
。
$_POST['newName'] = $_POST['newName'] == "" ? "Dude" : $_POST['newName'];
如果$_POST['newName'] == ""
为真,那么"Dude"
和$_POST['newName']
。
并且该值都将在$_POST['newName']
中设置。
您可以这样写:[完整形式]
if($_POST['newName'] == "")
$_POST['newName'] = "Dude";
答案 1 :(得分:1)
?也被称为三元运算符。它被称为三元运算符,因为它需要三个操作数 - 一个条件,一个结果为true,一个结果为false。如果这听起来像是对你的if语句,你就是对的钱 - 三元运算符是if语句的简写(虽然很难读)。这是一个例子:
<?php
$agestr = ($age < 16) ? 'child' : 'adult';
?>
首先是一个条件($ age&lt; 16),然后是一个问号,然后是一个真实的结果,一个冒号和一个错误的结果。如果$ age小于16,则$ agestr将设置为&#39; child&#39;否则将设置为&#39; adult&#39;。单行三元语句可以用这样的正常if语句表示:
<?php
if ($age < 16) {
$agestr = 'child';
} else {
$agestr = 'adult';
}
&GT?; 因此,从本质上讲,使用三元运算符可以将五行代码压缩成一行,但代价是可读性。
答案 2 :(得分:0)
有时在编码时,您可能会觉得编写if(...){...}else{...}
可能会觉得对于少量代码有点过分:
$result;
if (20>3)
{
$result = "bigger!";
}
else
{
$result = "smaller!";
}
因此,创建了一个简写符号,您可以在这里表达完全相同的语句,但不需要这么大的结构:
$result = (20>3) ? "bigger!" : "smaller!" ;
=
和?
之间的任何内容都是(
和)
if(...)
之间的条件。如果该表达式等于true
,则$result
获得的值为:"bigger!"
,如果等于false
,则结果为:{{1} }。
答案 3 :(得分:0)
正如Frayne所说,它是条件陈述的缩短版本。当我们以完整的形式写它时,它就变成了:
Col_D
6483