PHP条件返回语句


PHP conditional return statement?

有人能告诉我这个php语句中的条件是什么吗?

return $node->type == 'article' ? mymodule_page_article($node) : mymodule_page_story($node);

我很抱歉,如果这不是问这样一个简单的问题的地方,但我发现很难查找特定的代码结构(特别是当我不知道它的名字)。

这是一个三元操作符。

等于

if( $node->type == 'article' ) {
    return mymodule_page_article($node);
} else {
    return mymodule_page_story($node);
}

它的作用是:如果?之前的内容为真,则返回第一个子句中表达式的结果(?:之间的内容)。如果为false,则返回第二个子句(:之后的内容)的结果。

这是三元运算符?:,可以展开如下:

if ($node->type == 'article') {
  return mymodule_page_article($node);
} else {
  return mymodule_page_story($node);
}

这相当于:

if($node->type == 'article')
{
     return mymodule_page_article($node);
}
else
{
     return mymodule_page_story($node);
}

这称为三元操作符。有关更多信息,请参阅此处:http://www.php.net/operators.comparison

这是一个三元表达式。

条件为$node->type == 'article',如果为真,则mymodule_page_article($node) else mymodule_page_story($node)

如果节点类型等于'article'则执行mymodule_page_article($node),如果不等于则执行mymodule_page_story($node)

使用三元运算符

return isset($node->type == 'article') ?Mymodule_page_article ($node): mymodule_page_story($node)