Menu

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:

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.

Ti-a placut articolul? Asigura-te ca-ti dam de veste cand publicam altele noi.


Tags: Tutoriale, Programare Web, Php Si Mysql

Comments Nota 0 din 0