PHP-сокращение для if (!isset($var)) $var = 1;

Есть ли сокращенная версия для «если эта переменная еще не установлена, установите ее»?

Пример:

switch ($Frequency) {
    case 'Once':
        doSomethingSpecific();
        break;
    case 'Daily':
        $Message = 'Event will occur every day at the same time.';
    case 'Weekly':
        if (!isset($Message)) $Message = 'Event will occur every week on the same day of the week, at the same time.';
    case 'Monthly':
        if (!isset($Message)) $Message = 'Event will occur every month on the same day of the week.';
        doSomething($Message);
        break;
}

person Nathan J.B.    schedule 16.01.2014    source источник
comment
ИМХО, это можно было бы написать лучше, чтобы было более понятно, что вы делаете. Я бы посоветовал проверить, если $Frequency == "Once", то doSomethingSpecific(), иначе установить сообщение и вызвать doSomething() в конце.   -  person Jonathan Kuhn    schedule 17.01.2014
comment
@JonathanKuhn - Спасибо, это просто пример.   -  person Nathan J.B.    schedule 17.01.2014


Ответы (1)


Да, это называется тернарным оператором:

$var = isset($var) ? $var : "Some default";

Начиная с PHP 5.3 для этого также существует сокращенная версия:

$var = isset($var) ?: "Some default";

И альтернативная версия для PHP 5.3+:

isset($var) ?: $var = "Some default";
person Community    schedule 16.01.2014