PHP的未知部分

时间:2012-10-17 12:54:13

标签: php

OKE。我看到了这段代码,我很好奇它是如何工作的以及它的作用。 任何人都可以向我解释这个吗? 谢谢!

$_SESSION['langtype']
   = (empty($_SESSION['langtype'])) ? 'false' : $_SESSION['langtype'];

7 个答案:

答案 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'];
     }
 ?>