2013-03-21 55 views
-2

我在堆栈溢出很多情况下都看到了,我看到人们使用含例子:使用?和:相比于运营商{和}

$Var = isset($_SESSION['Key'])? $_SESSION['Key']: null; 

什么是实际结构和表现?有没有任何性能改进服务器与使用这些运算符相比,简单的ifelse声明?或者这通常是由个人编程偏好决定的?

+1

http://php.net/manual/en/language.operators.comparison.php – 2013-03-21 02:23:28

+0

我会感到惊讶如果有任何性能差异。将默认值设置为变量是完美的,但它仍然是一个偏好问题。 – Tchoupi 2013-03-21 02:24:24

+0

个人喜好,简洁的代码,清晰的变量赋值。它被称为_ternary operator_ – 2013-03-21 02:24:29

回答

1

它只是产生较短的代码。它等效于:

if (someCondition) // do if true 
else // do otherwise 

或为您的代码...

if ($_SESSION['Key']) $Var = $_SESSION['Key']; 
else $Var = null;