OKE。我看到了这段代码,我很好奇它是如何工作的以及它的作用。 任何人都可以向我解释这个吗? 谢谢!
$_SESSION['langtype']
= (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
答案 0 :(得分:3)
在$_SESSION['langtype']
中输入false是未设置的值,否则保持当前值。
另见http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
答案 1 :(得分:1)
如果"false"
为空(或键$_SESSION['langtype']
的值不存在),则会将$_SESSION['langtype']
放入langtype
(作为STRING,而不是BOOL VALUE),否则保持相同的价值。
将"false"
作为字符串放置可能是个坏主意。例如,如果此杰作的作者决定进行检查if ($_SESSION['langtype']) { }
,则无论如何都会返回true。我很好奇这个解决方案应该是合理的。
答案 2 :(得分:1)
它是if-else
陈述的简写。如果(empty($_SESSION['langtype']))
然后$_SESSION['langtype'] = false
其他$_SESSION['langtype'] = $_SESSION['langtype']
答案 3 :(得分:1)
这是本声明中使用的三元运算符
$_SESSION['langtype'] = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
这意味着如果名为 langtype 的会话变量为空,则返回false,否则使用与定义相同的langtype
?之后的部分表示函数
empty($_SESSION['langtype'])返回true时的值(如果它为空则为平均值,然后将其设置为false或取消定义该变量)ie {{ 2}}
和之后的部分:表示如果langtype不为空的else语句,则保持原样(等于定义的值)为
$_SESSION['langtype'] = false;
< / p>
答案 4 :(得分:1)
它被称为三元运算符。它由条件表达式和条件评估的返回值组成。
// if expression evaluates to true first value will be returned,
// otherwise it will the second
$variable = (expression) ? 'value if true' : 'value if false';
答案 5 :(得分:0)
如果没有设置(true)那么它将为false,否则如果它(false)它打印会话值
答案 6 :(得分:0)
$_SESSION['langtype'] = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];
对于初学者,上述代码与您可能知道的长版本相同
<?php
if(empty($_SESSION['langtype'])) {
$_SESSION['langtype'] = 'false';
} else {
$_SESSION['langtype'] = $_SESSION['langtype'];
}
?>