Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.
Vůbec ne takové fíčurinky jako filtry, registerNodeClass a podobné, jak o tom píšou machři. Potěšilo by mě mnohem víc, kdyby bylo možné při volání funkce zadat jen některé argumenty, i když jsou v původním pořadí úplně na konci. A zadat argumenty v libovolném pořadí.
Omlouvám se netechnikům za technický příspěvek, kdyžtak si zatím něco čtěte.
Ono samozřejmě jde poslat jen některé argumenty, pokud ty ostatní mají nastavenou defaultní hodnotu. Jenže ty poslané musejí jít zleva podle pořadí, jaké stanovil tvůrce funkce. Takže když mám kód
<?php function zviratko ($velikost="velký", $barva="černý", $zvire="pes") { return "$velikost $barva $zvire";} echo zviratko(); ?>
dostanu podle očekávání „velký černý pes“. Kdybych chtěl dostat „velký černý medvěd“ nebo „velký strakatý tygr“, jak by bylo krásné napsat jenom
<?php echo zviratko($zvire="medvěd"); echo zviratko($zvire="tygr", $barva="strakatý"); // všimněte si obráceného pořadí argumentů ?>
Jenže to nefunguje. Musí se samozřejmě napsat
<?php echo zviratko("velký", "černý", "medvěd"); ?>
Proč mi vadí, že to nejde zjednodušeně? Protože si při volání funkce musím pamatovat správné pořadí argumentů a zbytečně vypisovat i ty, co se jejich hodnota nemění. Což
Kdo si má třeba pamatovat, že v mysql_query se píše nejdřív dotaz a pak nepovinně identifikátor spojení, kdežto v pg_query je to naopak a obojí je povinné? Mít možnost zapsat něco jako mysql_query($link=$connection, $query=$dotaz), to by byla pohoda...
Já vím, dá se to obejít, třeba si udělat funkci tak, aby se do ní posílalo – jako argument – pole a jednotlivé skutečné argumenty byly pojmenované položky pole. Všechno je to ale zbytečná komplikace.
A jazyk prostředí R to umí. Škoda, že PHP (dosud) ne.
Aktualizace: Umí to i Python. Tak vidíte, že to jde, když se chce.
Další články si můžete vyhledat v jednotlivých přihrádkách, případně podle data.
© Honza Hučín 2004–6
Šuplík běží na PIPNI.CZ. Díky!
8. 8. 16:48 | Pepa
7. 8. 21:26 | Honza Hučín
7. 8. 21:02 | Honza
6. 8. 14:29 | Pepa
3. 8. 18:29 | Honza
*1967, absolvent MFF UK v Praze (1991)
statistik, analytik, programátor, učitel, hudebník