Functii PHP

Am aflat si eu acu nu demult, dar totusi destul de tarziu ca o functie php chiar daca nu are in corpul sau comanda sau sintaxa return aceasta returneaza tot timpul o valoare un element , returneaza ceva”.

Am inceput prin a specifica acest lucru pentru a invata voi macar din greselile mele. Iar acum ca am stabilit un punct de plecare sa-i dam drumul si astfel sa discutam despre niste functii in limbajul PHP. Pentru incepul vreau sa va prezint un scurt desfasurator al punctelor de discutie pentru a va ghida mai usor in cadrul articolului:

  • Ce sunt functiile PHP (ce consideram o functie)
  • Sintaxa declararii unei functii
  • imbinare HTML+PHP in realizarea unui script PHP
  • Utilitatea functiilor
  • Concluzii generale
Acestea fiind spuse sa incep si detalierea ar fi o idee.
  • Ce sunt functiile PHP
Functia este o secventa de cod ce poate fi utilizata de mai multe ori in interiorul marilor scripturi si este prezentata in script prin declaratia ei.
Functia chemata (invocata) va contine acelasi numar de argumente ca in declaratie.
In PHP4 o functie poate fi definita oriunde in cadrul script-ului si in interiorul unei functii poate sa apara orice secventa valida de cod care include definirea de alte functii si definitii de clase. Argumentele unei functii trebuie separate prin virgula, si, implicit, acestea sunt transmise prin valoare. Pentru ca functia sa returneze un rezultat se foloseste constructia return care primeste ca parametru o expresie care reprezinta valoarea functiei. In momentul in care este intalnita constructia return, executia functiei se incheie. In exemplul urmator se calculeaza cu ajutorul unei functii PHP, patratul unui numar.
<?php
function patrat ($n) {
return $n * $n;
}
echo “4^2=<b>”.patrat(4).”</b>”;
?>
Rezultatul va fi 4^2 = 16
  • Sintaxa declararii unei functii
In PHP 4 functiile pot fi definite de catre utilizator folosind urmatoarea sintaxa:
function numef ($param1, $param2, …, $paramN) {
// instructiuni
}
 Dupa cum se poate observa in sintaxa precizata mai sus:
  • numef – reprezinta numele functiei
  • $param1, … , $paramN – reprezinta parametrii functiei
  • //instructiuni – tine locul blocului cu instructiuni ce urmeaza a fi executate la apelul functiei. Acesta poate fi constituit dintr-o instructiune sau din mai multe (acoladele) “{” respectiv “}” fiind necesare pentru delimitarea corpului functiei
  • Imbinare HTML+PHP in realizarea unui script PHP
Dupa cum poate fi observat si mai sus codul PHP se imbina armonios cu codul HTML cele doua limbaje fiind practic utilizate in cazul descrierii unei pagini web ce contine continut dinamic. Un astfel de exemplu este prezentat mai jos:
//functie ce returneaza abonati din baza de date
function getAbonati(){
	$number=0;
	$abonati=@mysql_query("SELECT * FROM Abonat ORDER BY numeAbonat ASC");
	$tabelAbonati="<div id=\"getAbonati\">
			<table width=\"100%\"><tr>";
	while($row = mysql_fetch_array($abonati)){
			if($number!=5){
				$tabelAbonati.="<td width=\"20%\" style=\"text-align:center\"><img src=\"http://lamaro.ro/admincp/icons/admin.png\" width=\"60px\" alt=\"imagine abonat\"/><br/><a href=\"abonati.php?idAbonat=".$row['idAbonat']."\">".$row['numeAbonat']." ".$row['prenumeAbonat']."</a><br/><a href=\"abonati.php?deleteId=".$row['idAbonat']."\">Sterge abonat</a></td>";
				$number++;
			}else{
				$tabelAbonati.="<tr></tr><td width=\"20%\" style=\"text-align:center\"><img src=\"http://lamaro.ro/admincp/icons/admin.png\" width=\"60px\" alt=\"imagine abonat\"/><br/><a href=\"abonati.php?idAbonat=".$row['idAbonat']."\">".$row['numeAbonat']." ".$row['prenumeAbonat']."</a><br/><a href=\"abonati.php?deleteId=".$row['idAbonat']."\">Sterge abonat</a></td>";
				$number=0;
			}
		}
	$tabelAbonati.="</tr></table>
		       </div>";
	return $tabelAbonati;
}

Aceasta functie spre exemplu genereaza un tabel pentru afisarea abonatilor dintr-o baze de date (vezi postarea cu privire la exemplu de normalizare pentru a avea ideea despre baza de date despre care este vorba.).

In variabila $tabelAbonati este stocat codul HTML generat dinamic pentru tabelul ce se doreste obtinut. Este de retinut ca la valoarea actuala a variabilei este adaugat prin concatenare un rand in functie de valorile obtinute in urma evaluarii expresiilor din catrul instructiuni while sau if/else.

Un alt exemplu de “intretesere” a celor doua limbaje de programare il aveti mai jos, in cazul de fata am pus o pagina si nu o functie cum a fost cazul mai sus.

<?php
	session_start();
	include_once "include/functions.php";
	include_once "config.php";
	sessions();
		if($_SESSION['status']!="registered"){
			header("Location: index.php?msg=\"Ne pare rau dar datele sessiuni tale nu concid cu informatiile stocate pe server\"");
		}

	?>
	<?php head("Furnizor Telefonie - Pagina Abonati");?>
		<div style="float:right">
			<input type="button" value="back" onclick='window.location.href="javascript: history.go(-1)"' class="buton"/>
		<?php if(!isset($_GET['idAbonat'])){?>
			<input type="button" value="adauga abonat" onclick='window.location.href="adauga.php?info=abonat"' class="buton"/>
		<?php }else{ ?>
			<input type="button" value="adauga numar" onclick='window.location.href="adauga.php?info=numar&idAbonat=<?php echo $_GET['idAbonat']; ?>"' class="buton"/>
		<?php } ?>
			<input type="button" value="logout" onclick='window.location.href="index.php?logout"' class="buton"/>
		</div>
		<h2>Abonati Telefonie</h2>
		<hr/>
		<?php
		if(!isset($_GET['idAbonat'])){
			if(isset($_GET['deleteId'])){
				mysql_query("DELETE FROM Abonat WHERE idAbonat=$_GET[deleteId]");
				mysql_query("DELETE FROM AbonatTelefoane WHERE idAbonat=$_GET[deleteId]");
			}
			echo getAbonati();
		}else{
			if(isset($_GET['deleteNr'])){
				mysql_query("DELETE FROM Telefoane WHERE idTelefon=$_GET[deleteNr]");
				mysql_query("DELETE FROM AbonatTelefoane WHERE idTelefon=$_GET[deleteNr]");
				header("Location: abonati.php?idAbonat=".$_GET['idAbonat']);
			}
			echo infoAbonat($_GET['idAbonat']);
		}

		?>
<?php foot(); ?>

Acest exemplu de mai sus este pagina pentru reprezentarea abonatilor folosind si functia prezentata adineaori.

  • Utilitatea functiilor 
Despre utilizarea functiilor php cat si a altor functii din alte limbaje e cam totul aceeasi poveste. O functie ca sa ruleze trebuie sa fie apelata din corpul programului principal sau din corpul unei alte functii.
Un exemplu cu apeluri de functii  il aveti mai jos:
  • echo getAbonati();
  • echo infoAbonat($_GET[‘idAbonat’]);
  • Concluzii generale
Ca si concluzii sau concluzie generala am urmatoarele recomandari. Incercati sa structurati codul cat mai bine sa modularizati aplicatia cat mai mult si sa mentineti o structura cat mai perceptibila pentru publicul larg. Utilizati comentarii pentru comentarea liniilor de cod.
Sper sa nu apuc sa adaug multe alte chesti la postarea de fata. Numai bine!
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s