Optimizarea argumentelor unei functii
Azi m-am gandit la o problema interesanta. Cand trebuie sa retinem argumentele la o functie cu maxim 3 argumente este usor, dar ce ne facem cand trebuie sa retinem argumentele la o functie cu peste 5 argumente? De exemplu:<?php function functie($argument1,$argument2,$argument3,$argument4,$argument5){ // cod de executat } ?>O functie de genul este foarte greu de memorat, mai ales cand argumentele nu au o stransa legatura intre ele sau nu sunt intr-o ordine logica(alfabetica de exemplu). Dar putem gasii o rezolvare mult mai simpla de cat credeti pentru aceasta problema, folosirea unui array dar care si el vine cu cateva caracteristici:
- nu conteaza ordinea argumentelor
- numele argumentului trebuie sa fie retinut
Mai jos o sa dau 2 exemple pentru ambele cazuri:
<?php function inregistrare($user, $parola, $email, $grad, $poza, $time, $cod){ // codul aferent functiei // Deoarece nu asta nu ne intereseaza nu o sa-l adaug } ?>O functie foarte greu de memorat si poate devenii frustrant sa te uiti peste fisier de fiecare data cand o folosesti. Dar, cu ajutorul unui array:
<?php function inregistrare($array){ $user = $array['user']; $parola = $array['parola']; $email = $array['email']; $grad = $array['grad']; $poza = $array['poza']; $time = $array['time']; $cod = $array['cod']; //codul aferent functiei } ?>Acum totul e mult mai simplu, ordinea nu mai conteaza, doar sa nu gresiti numele pentru indexii array-urilor. In caz ca functia este deja creata si implementata, se poate opta pentru o cale de mijloc si fara dezavantaje in caz ca primul argument nu este un array(dar chiar si atunci puteti rezolva):
<?php function inregistrare($user, $parola, $email, $grad, $poza, $time, $cod){ if(is_array($user)){ $parola = $user['parola']; $email = $user['email']; $grad = $user['grad']; $poza = $user['poza']; $time = $user['time']; $cod = $user['cod']; $user = $user['user']; } //codul aferent functiei } ?>De retinut ca ultima variabila declarata sa fie cea cu array-ul(in cazul nostru $user) , in caz ca o veti declara inainte cele declarate dupa ea nu vor mai functiona deoarece voi in acel moment inlocuiti array-ul cu doar o valoare din el.
Tags: Tutoriale, Programare Web, Php Si Mysql
Comments
Nota
0
din
0