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