-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Description
4.4. Присвоения в условных операциях
Использовать операцию присвоения в условиях конечно не рекомендуется, но бывают кейсы в которых использование присвоения в условиях позволяет избавится от многоуровневой вложенности и сделать код более компактным и читаемым. Хотя это моё субъективное мнение.
if (
($token = $this->token_storage->getToken()) &&
($user = $token->getUser()) &&
$user instanceof User
) {
// do something
}VS
$token = $this->token_storage->getToken();
if ($token instanceof TokenInterface) {
$user = $token->getUser();
if ($user instanceof User) {
// do something
} else {
// мы должны писать return или else, что бы не менялось поведение программы
}
}Пример посложнее
if (
($request = $this->request_stack->getMasterRequest()) &&
($session = $request->getSession()) &&
($token = $this->token_storage->getToken()) &&
($user = $token->getUser()) &&
$user instanceof User &&
($confirm_token = $session->get('confirm_token')) &&
$user->getConfirmToken() === $confirm_token
) {
// do something
}VS
$request = $this->request_stack->getMasterRequest();
$token = $this->token_storage->getToken()
if ($request instanceof Request && $token instanceof TokenInterface) {
$session = $request->getSession();
$user = $token->getUser();
if (
$session instanceof SessionInterface &&
$user instanceof User &&
$session->has('confirm_token')
) {
$confirm_token = $session->get('confirm_token');
if ($confirm_token && $user->getConfirmToken() === $confirm_token) {
// do something
} else {
// обрабатываем исключительную ситуацию
}
} else {
// обрабатываем исключительную ситуацию
}
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels