PHP varsayılan fonksiyon değerleri gibi sabitler kullanarak

2 Cevap php

Bu yasal mı?

<?php

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
      //lots_of_awesome_code
}

?>

burada MENU_DEFAULT_VALUE ve ODP_DEFAULT_VALUE, daha önce dosyaya, daha önce tanımlandığı sabitlerdir.

Teşekkürler.

2 Cevap

Evet, bu yasaldır.

Dan the manual:

The default value must be a constant expression, not (for example) a variable, a class member or a function call.

Sabitleri mükemmel bu tasarıyı uygun.

neden denemiyorsunuz?

Yine de, sadece durumda, şu anda aşağıdaki kodu test edebilirsiniz:

define('MENU_DEFAULT_VALUE', 10);
define('ODP_DEFAULT_VALUE', 'hello');

function ftw($foo = 'pwnage', $nub = MENU_DEFAULT_VALUE, $odp = ODP_DEFAULT_VALUE) {
    var_dump($foo);
    var_dump($nub);
    var_dump($odp);
}

ftw();

Bu çıktıyı verir:

string 'pwnage' (length=6)
int 10
string 'hello' (length=5)

Yani evet, bu geçerli :-) olduğunu söyleyebilirim