MySQL ifnull эквивалент для php - PullRequest
10 голосов
/ 10 сентября 2009

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

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

Я бы хотел, чтобы это было похоже на mysql:

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

или что-то подобное, что в идеале также проверит на ЛОЖЬ. Таким образом, мне придется вызывать функцию только один раз!

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

Ответы [ 2 ]

12 голосов
/ 10 сентября 2009

Начиная с 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);
3 голосов
/ 10 сентября 2009

Как насчет добавления этой маленькой функции?

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...