Php için MySQL IFNULL eşdeğer

2 Cevap

Benim senaryo:

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

Ben mysql gibi olmak istiyorum:

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

ya da YANLIŞ İdeal için bir test olacağını bunun gibi bir şey. Bu şekilde sadece bir kez işlevini çağırmak olurdu!

Ben sadece bir var atamak olabileceğini biliyorum, ama bu (oh nooes!) Kodumu başka bir satır eklemek istiyorum. Bu gerçekten bir kozmetik bir şey, ben okumak için daha kolay olacağını düşünüyorum. Neyse google (beni yanlış kanıtlayan birisi inb4) bana yardım etmedi. Teşekkürler!

2 Cevap

PHP 5.3 'da kullanabilirsiniz short ternary operator:

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

Bu temelde beklenen işlevselliği ama işlev bildirmek zorunda kalmadan. Önce 5.3 PHP sürümlerinde, André'ın cevap gitmeli.

O tuşları belirtilmemiştir hangi diziler kontrol konusunda ise işlevini çağırarak, uyarıları atmak olabilir, ama aklınızda tutun:

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

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

Nasıl bu küçük işlevi ekleyerek?

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

Ne istediğini yapar herhangi bir işlev bilmiyorum, ama bunu uygulamak için that zor değil çünkü sen de o yapabilir bunu çok kullanırsanız.