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 кто-то доказывает, что я ошибаюсь). Спасибо!
Ответы
Ответ 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;
}
Я не знаю никакой функции, которая делает то, что вы хотите, но так как это не так сложно реализовать, вы также можете это сделать, если используете ее много.