возвращается из тройного утверждения [дубликат]

SELECT * FROM Employee, где Employee.Salary in (выберите max (зарплата) из группы Employee Employee_id) ORDER BY Employee.Salary

15
задан dzm 7 June 2011 в 14:58
поделиться

5 ответов

Нет, это невозможно. Однако возможно следующее:

$e = $this->return_errors();
return ( !$e ) ? '' : array( false, $e );

Надеюсь, что это поможет.

0
ответ дан Berry Langerak 25 August 2018 в 17:17
поделиться

Он не работает на большинстве языков, потому что return - это оператор (например, if, while и т. д.), а не оператор, который может быть вложен в выражение. Следуя той же логике, вы не пытались бы вложить выражение if в выражение:

// invalid because 'if' is a statement, cannot be nested, and yields no result
func(if ($a) $b; else $c;); 

// valid because ?: is an operator that yields a result
func($a ? $b : $c); 

Это не сработало бы для break и continue.

6
ответ дан Blagovest Buyukliev 25 August 2018 в 17:17
поделиться

Нет, это невозможно, и это также довольно запутанно по сравнению с:

if($e) {
    return array('false', $e);
}
2
ответ дан Dan Breen 25 August 2018 в 17:17
поделиться

Это правильный синтаксис:

return  !$e ? '' : array('false', $e);
21
ответ дан ioseb 25 August 2018 в 17:17
поделиться

Нет. Но вы можете иметь тернарное выражение для оператора return.

return (!$e) ? '' : array('false', $e);

Примечание. Это может быть не желаемая логика. Я предоставляю его в качестве примера.

7
ответ дан Jason McCreary 25 August 2018 в 17:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: