Autor Zpráva
Lovec
Profil
Ahoj, nejak mi nejde do hlavy nasledujici.

Mam funkci s nepovinnymi parametry:

function fce($parametr1 = '', $parametr2 = '') {
...
}

Ted pokud chci zavolat tu funkci tak abych zadal jen 2. parametr tak to musim udelat fce('', $parametr2), nebo se da nejak zaridit aby funkce poznala ktery parametr chci zadat?
24k
Profil *
Nejde. Musis to zadat tak jak si napsal.
souki
Profil
jenom bývá zvykem psát
function fce($parametr1 = false, $parametr2 = false) {
...
}
Peca
Profil
Pokud sám rozpoznáš, co je to za parametr, tak není problém potom přiřadit v té funkci něco ve smyslu:
function fce($parametr1 = '', $parametr2 = '') {
if (JednaSeODruhyParametr($parametr1)) { //nahradit nějakou podmínkou, která to rozpozná
$parametr2=$parametr1;
$parametr1='';
}
...
}
24k
Profil *
Peca a ma to smysl, delat z toho takovejhle gulas?
mila
Profil
Občas píšu fce tak, že se parametr dá vynechat zadáním null:

function foo ($a = null, $b = null)
{
is_null($a) and $a = "default a";
is_null($b) and $b = "default b";

...
}
rabbit
Profil
To souki
jenom bývá zvykem psát
function fce($parametr1 = false, $parametr2 = false) {
...
}


Dovolím si nesouhlasit. Závisí to sice na tom, kde (v jakých kruzích) je to podle tebe zvykem, ale z hlediska formální logiky (a objektového návrhu) je imho lepší použít null (viz. ukázka kódu od mily).
souki
Profil
rabbit
null je také zajímavé... popravdě to vidím poprvé...
V kódu mi pak přijde lepší testovat
if($parametr) než if(!is_null($parametr))

Ale až teď jsem se nad tím pořádně zamyslel a asi bude opravdu lepší null..... False je ale každopádně pohodlnější
Toto téma je uzamčeno. Odpověď nelze zaslat.