2017-01-25 2 views
2

Что является более кратким способом переписать это выражение.Как я могу переписать это выражение более лаконично?

$user = $user ? $user : Yii::$app->getUser()->identity; 
+7

Насколько вы можете получить более сжатые? –

+0

Правда. Я просто предположил, что может быть лучший способ выразить это. –

+0

В PHP7 - '$ user = $ user ?? Yii :: $ app-> getUser() -> identity; ' – AbraCadaver

ответ

0

Если вы просто хотите, чтобы сделать его немного короче, вы можете использовать или запросе.

$user || $user = Yii::$app->getUser()->identity; 

Если вы используете PHP 7, использование оператора нулевой коалесценции, как указывает указатель AbraCadaver, имеет смысл. Это и есть главная причина, по которой она существует.

Но в целом я бы рекомендовал не пытаться сделать слишком много «оптимизации» с точки зрения сокращения вашего кода. Ясность и удобочитаемость гораздо важнее, чем сжатость.

+0

За исключением' Примечание: Неопределенная переменная: user' – AbraCadaver

+0

Я предположил, что '$ user' был определен, но может просто оцениваться как false, учитывая код OP с троянец получит такое же уведомление, если это не так. –

+0

Но я думаю, все знают, что может случиться, когда мы «предположим». ;) –

1
$user = $user ?: Yii::$app->user->identity; 
+0

За исключением уведомления: 'Неопределенная переменная: пользователь'. Большинство людей используют троицу таким образом, чтобы проверить, установлено ли это, если вы не получите это уведомление. – AbraCadaver

Смежные вопросы