Этот код должен работать, но его можно улучшить.
Во-первых, поскольку альтернативного случая для предложения true нет, вы можете использовать сокращенный тернарный оператор.
['last_name' => env('ADMIN_LAST_NAME', NULL) ?: $this->askForLastName()']
;
Кроме того, в то время как нулевое значение вернет false для предложения if, оно не очень точное или конкретное. Если вы хотите явно проверить нулевые значения, используйте is_null
. Если вы хотите иметь значение null или false, используйте empty
. В таком случае вы не сможете использовать сокращенное выражение, так как оба предложения true/false должны возвращать отдельный объект.
['last_name' => is_null(env('ADMIN_LAST_NAME', NULL)) ? $this->askForLastName() : env('ADMIN_LAST_NAME', NULL)]
Вы можете взять его на шаг вперед, избавившись от многочисленных звонков в окр.
['last_name' => is_null(($adminLastName = env('ADMIN_LAST_NAME', NULL))) ? $this->askForLastName() : $adminLastName]
.
Это вопрос стиля кода и предпочтения. Просто держите его в соответствии со своей кодовой базой.
Я полагаю, что это зависит от того, что возвращает 'env()', не могли бы вы поделиться этой функцией? –
может быть проблемой приоритета, используйте parentesis, чтобы попробовать и убедитесь, что это –
Так оно работает или не работает? Каков результат? – AbraCadaver