PHP оператор условного возврата? - PullRequest
4 голосов
/ 03 сентября 2011

Может кто-нибудь сказать мне, в каком состоянии это утверждение php?

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

Извините, если это не то место, где можно задать такой простой вопрос, но мне трудно его найти.конкретная структура кода (особенно, когда я не знаю его название).

Ответы [ 5 ]

8 голосов
/ 03 сентября 2011

Это троичный оператор .

Это эквивалентно

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

Что он делает: если материал перед ? верен, вернутьрезультат выражения в первом предложении (вещи между ? и :).Если это ложно, то он возвращает результат второго предложения (материал после :).

2 голосов
/ 03 сентября 2011

Это троичный оператор ?: и может быть расширен следующим образом:

if ($node->type == 'article') {
  return mymodule_page_article($node);
} else {
  return mymodule_page_story($node);
}
1 голос
/ 03 сентября 2011

Это эквивалентно:

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

Это называется троичным оператором.См. Раздел здесь для получения дополнительной информации: http://www.php.net/operators.comparison

0 голосов
/ 03 сентября 2011

Если тип узла равен 'article', выполните mymodule_page_article($node), если он не равен, тогда выполните mymodule_page_story($node)

0 голосов
/ 03 сентября 2011

это троичное выражение.

условие: $ node-> type == 'article', и если оно истинно, выполняется mymodule_page_article ($ node), иначе mymodule_page_story ($ node)

...