将PHP if / else语句转换为使用三元格式

时间:2014-08-27 14:11:14

标签: php ternary-operator

我想将这个if / else语句转换为三元格式:

function session_active()
{
  if ($_SESSION['p_logged_in']) { 
    return true; 
  } 
  else { 
    return false; 
  }; 
}

我试过了:

function session_active()
{
  ($_SESSION['p_logged_in'] ? true : false);
}

但它总是返回false。

我正在查看http://davidwalsh.name/php-ternary-examples处的示例,就我从示例中看到的情况而言,这似乎是正确的。为什么它总是返回假?

5 个答案:

答案 0 :(得分:4)

您可以尝试简单return $_SESSION['p_logged_in']值: -

function session_active()
{
  return  (bool)$_SESSION['p_logged_in'];
}

答案 1 :(得分:1)

php不是ruby,你必须从三元中返回该值。

详细说明......

function session_active()
{
  return ($_SESSION['p_logged_in'] ? true : false);
}

答案 2 :(得分:1)

试试这个:

function session_active() {
   return (isset($_SESSION['p_logged_in'])) ? true : false;
}

答案 3 :(得分:1)

更正您的陈述前面的逻辑添加return 要简化它:return (bool)$_SESSION['p_logged_in'];

答案 4 :(得分:1)

$_SESSION['p_logged_in'] === true$_SESSION['p_logged_in'] != null之间存在差异,退回$ _SESSION [' p_logged_in']可能会影响其效果。