Подтвердить что ты не робот

MySQL ifnull эквивалент для php

Мой сценарий:

$exTime = get_cfg_var("session.gc_maxlifetime")?get_cfg_var("session.gc_maxlifetime"):1440;

Мне бы хотелось, чтобы он был как mysql:

$exTime = isnull(get_cfg_var("session.gc_maxlifetime"),1440);

или что-то в этом роде, которое также отлично проверит FALSE. Таким образом, мне нужно будет только один раз вызвать функцию!

Я знаю, что могу просто назначить его var, но это добавит еще одну строку в мой код (oh nooes!!). Это действительно косметическая вещь, я думаю, ее было бы легче читать. Во всяком случае, Google не помог мне (inb4 кто-то доказывает, что я ошибаюсь). Спасибо!

4b9b3361

Ответ 1

Как и в PHP 5.3, вы также можете использовать короткий тернарный оператор:

$exTime = get_cfg_var("session.gc_maxlifetime") ?: 1440;

Это в основном ваша ожидаемая функциональность, но без объявления функции. В версиях PHP до 5.3 вы должны пойти с ответом Андре.

Имейте в виду, что вызов функции может вызывать предупреждения, если он собирается проверять массивы, в которых ключи не указаны:

$array = array(
    0 => array(
        0 => 100
    )
);

$example = isNull($array[0][1], 200);

Ответ 2

Как добавить эту небольшую функцию?

function isnull($var, $default=null) {
    return is_null($var) ? $default : $var;
}

Я не знаю никакой функции, которая делает то, что вы хотите, но так как это не так сложно реализовать, вы также можете это сделать, если используете ее много.