2014-04-22 148 views
3

这是如果:这为什么要求默认?

Session::has('tk') ? Session::get('tk') : 1; 

我想跳过:1,但随后由于某种原因失败,而TK在另一如果设定永诺?

+1

你是什么意思 “跳过1”? – adamS

+1

如果你使用短版本,你需要一个其他的 – Dinistro

+4

@Dinistro是正确的 - 三元运算符有一个严格的语法http://www.php.net/manual/en/language.operators.comparison.php – adamS

回答

2

如果你已经知道tk有一个值,那么你不需要使用has()函数来检查它。

使用只是:

Session::get('tk'); 
+0

我认为他没有,虽然... –

+1

他写道:“虽然tk是allways在另一个设置?所以我明白,他已经知道这一点 – cyborg86pl

1

在很短的,如果,您需要同时定义:

<?php 
    $var = ($someThing) ? true: false; 

如果你不想这样做,采取定期if-statement

<?php 
    if ($someThing) { 
     $var = true; 
    } 
+0

请注意,该特定语句应该写为'$ var =! $ someThing' –

+0

@Jan Dvorak Thx纠正! –

0

三元运算符,因为它是称为boolean ? true_value : false_value

总是需要一个布尔值(比较),如果布尔值为true则返回一个值,而当布尔值为false时返回一个值。

我会使用它像

$tk = Session::has('tk') ? Session::get('tk') : null; 

做$ TK包含会话值或null如果没有会话值。

+0

在你的三元小错字,冒号代替问号 –

+0

@vp_arth tnx。你是对的 –

0

我会使用它像

$check = Session::has('tk') ? Session::get('tk') : 1; 
相关问题