@deepin

Что неправильно в логике с альтернативным синтаксисом?

var_dump($layout);// false
$this->layout = $layout === false ?: (isset($_SESSION['auth']) ? null : 'no');
var_dump($this->layout);// true

не смейтесь может я и запарился, но тупо не пойму почему false в true перешёл :)
  • Вопрос задан
  • 60 просмотров
Решения вопроса 2
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
$layout === false, $layout = false -> false === false = true
Ответ написан
@deepin Автор вопроса
if ($layout === false) {
    $this->layout = false;
} else {
    $this->layout = isset($_SESSION['auth']) ? null : 'no';
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
VladimirAndreev
@VladimirAndreev
php web dev
if($layout === false) $this->layout = true
else{
if(isset($_SESSION['auth']) $this->layout = null
else $this->layout = 'no';
}

$a = getWhatever() ?: null;

присваивает результат выражения слева или null
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы