๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑
WEBTOOLS FORUM - RECOMMENDED SETTINGS/SETARI RECOMANDATE: BROWSER=MOZILLA FIREFOX OR IE REZOLUTION=1280x1024| FORUMUL ESTE IN PLINA DEZVOLTARE VA RUGAM SA NE AJUTATI! ► DATA INFIINTARII: 19-07-2008 ►
Lista Forumurilor Pe Tematici
๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑ | Inregistrare | Login

POZE ๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑

Nu sunteti logat.
Nou pe simpatie:
sweet_kiss55555 din Bucuresti
Femeie
25 ani
Bucuresti
cauta Barbat
30 - 53 ani
๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑ / » TURORIALE PHP « / Despre functii in PHP Moderat de AndreyNek, MadaLino
Autor
Mesaj Pagini: 1
MadaLino
Moderator

Din: Hotel Paradis
Inregistrat: acum 17 ani
Postari: 240
Īn PHP funcţiile pot fi definite de către utilizator folosind următoarea sintaxă:

function numef ($param1, $param2, ..., $paramN) {
// instructiuni
}

Īn PHP o funcţie poate fi definită oriunde īn cadrul script-ului şi īn interiorul unei funcţii poate să apară orice secvenţă validă de cod care include definirea de alte funcţii şi definiţii de clase. Argumentele unei funcţii trebuie separate prin virgulă, şi, implicit, acestea sunt transmise prin valoare. Pentru ca funcţia să returneze un rezultat se foloseşte construcţia return care primeşte ca parametru o expresie care reprezintă valoarea funcţiei. Īn momentul īn care este īntālnită construcţia return, execuţia funcţiei se īncheie. Īn exemplul următor se calculează cu ajutorul unei funcţii PHP, pătratul unui număr.


Cod:

<?php
function patrat($n)
    {
    return $n * $n;
    }
echo "4^2=<b>".patrat(4)."</b>";
?>


Rezultatul codului va fi:

4^2=16


Transmiterea parametrilor prin referinţă

Pentru a transmite parametri unei funcţii prin referinţă, fapt care implică modificarea valorii parametrilor şi păstrarea noii valori după ce execuţia funcţiei s-a īncheiat, se foloseşte operatorul '&' īnaintea numelui parametrului formal, īn momentul definirii funcţiei. Următorul exemplu indică modul īn care se modifică valoarea unei variabile īn interiorul unie funcţii şi modul īn care această modificare este resimţită īn exteriorul acesteia:


Cod:

<?php
function modificInt ($s)
    {
    $s .= " prima functie.";
    echo "<b>In modificInt: </b>".$s."<br>";
    }
function modificExt (&$s)
    {
    $s .= " a doua functie.";
    echo "<b>In modificExt: </b>".$s."<br>";
    }

$s="Iesire din ";
echo "<b>In script: </b>".$s."<br>";
modificInt ($s);
echo "<b>In script: </b>".$s."<br>";
modificExt ($s);
echo "<b>In script: </b>".$s."<br>";
?>


Rezultat:

In script: Iesire din
In modificInt: Iesire din prima functie.
In script: Iesire din
In modificExt: Iesire din a doua functie.
In script: Iesire din a doua functie.

Nu există posibilitatea de supraāncărcare a unei funcţii, de redefinire a ei după ce aceasta a fost definită īn cadrul scriptului respectiv şi nu există nici posibilitatea de anulare a unei funcţii.


Parametri cu valori implicite

Īn PHP parametrii formali pot avea valori implicite, şi, īn cazul īn care parametrul actual lipseşte, atunci se va considera că are valoarea implicită. Următorul exemplu ilustrează modul de folosire al funcţiilor cānd acestea au parametri formali cu valori implicite:


Cod:

<?php
function comanda($s='cafea')
    {
    return "Ati comandat ".$s.".";
    }

echo comanda();
echo "<br>";
echo comanda("suc";
?>


Rezultat:

Ati comandat cafea.
Ati comandat suc.

Īn cazul īn care se folosesc parametri cu valori implicite este necesar ca orice parametru care are o valoare implicită să se afle īn partea dreaptă a tuturor parametrilor pentru care nu se folosesc valori implicite, īn caz contrar interpretorul PHP nu poate să decidă cărui parametru să-i atribuie valoarea de pe o anumită poziţie din lista de parametri. De exemplu, dacă avem o funcţie a cărei declaraţie este

function transform ($baza=10, $nr)

si care returnează rezultatul transformării lui $nr din baza 16 īn baza $baza, a cărei valoare implicită este 10, dacă se apeleaza transform (50), interpretorul nu atribuie valoarea 50 parametrului $nr, ci parametrului $baza şi generează o eroare deoarece lipseste valoarea parametrului $nr.


Funcţii cu număr variabil de parametri

O altă facilitate a limbajului PHP este aceea că oferă programatorului posibilitatea de a utiliza funcţii care au un număr nedeterminat de parametri. Funcţiile care folosesc un număr variabil de parametri nu au nici o particularitate īn ceea ce priveşte definirea lor. Aceste funcţii se definesc la fel ca cele prezentate anterior, dar pentru a putea accesa parametri se vor folosi următoarele funcţii predefinite:

- func_num_args( ) - această funcţie returnează numărul parametrilor funcţiei care a apelat-o; dacă această funcţie este apelată din exteriorul unei funcţii definite de utilizator se va genera un mesaj de avertizare;
- func_get_arg(arg_num) - returnează valoarea parametrului care se află pe pozitia arg_num īn lista de parametri; primul parametru are numărul de ordine 0; dacă este apelată din exteriorul unei funcţii definite de utilizator se va genera un mesaj de avertizare;
- func_get_args( ) - returnează un tablou unidimensional care conţine valorile parametrilor pe care funcţia apelantă i-a primit; dacă această funcţie este apelată din exteriorul unei funcţii definite de utilizator se va genera un mesaj de avertizare.

Īn continuare aveţi 2 exemple de utilizare a acestor funcţii. Primul exemplu afişează lista parametrilor funcţiei folosind funcţia func_num_argsşi func_get_arg, iar al doilea exemplu afişează aceeaşi listă folosind numai funcţia func_get_args.


Cod:

<?php
function lista_parametri()
    {
    for ($i=0; $i<func_num_args(); $i++)
        {
        print_r(func_get_arg($i));
        echo "<br>";
        }
    }
echo lista_parametri("Comanda:", 1, "calculator", 2, "procesoare", "configuratie", array("local", 2, 3));
?>


Cod:

<?php
function lista_parametrii()
    {
    foreach(func_get_args() as $i)
        {
        print_r ($i);
        echo "<br>";
        }
    }
echo lista_parametrii ("Comanda:", 1, "calculator", 2, "procesoare", "configuratie", array("local", 2, 3));
?>



Rezultat:

Comanda:
1
calculator
2
procesoare
configuratie
Array ( [0] => local [1] => 2 [2] => 3 )


Valorile returnate de funcţii

Rezultatul obţinut după apelarea unei funcţii poate avea orice tip. O funcţie poate să returneze chiar şi liste sau obiecte. Īn PHP există un caz special de rezultat numit referinţă. Pentru ca o funcţie să poată returna o referinţă, aceasta trebuie declarată folosindu-se operatorul '&' īnaintea numelui funcţiei. Acest operator trebuie să apară īnaintea numelui funcţiei şi īn momentul cānd o variabilă primeşte ca valoare referinţa rezultată din apelul funcţiei. Īn exemplul următor se defineşte o funcţie al cărui rezultat īl constituie o referinţă:


Cod:

<?php
function &refer()
    {
    global $s;
    return $s;
    }

$s = "Acesta este continutul variabilei referite cu ajutorul functiei.";
$z = &refer();
echo $z;
?>


Rezultat:

Acesta este continutul variabilei referite cu ajutorul functiei.

Spre deosebire de majoritatea limbajelor de programare moderne, o funcţie PHP poate să returneze o referinţă la o variabilă care a fost declarată īn interiorul funcţiei, īnsă acest lucru nu este indicat deoarece, īn anumite cazuri, poate duce la efecte neaşteptate ale executării unui script PHP. Īn alte limbaje de programare efectele devin uneori fatale.


Variabilele de tip funcţie

O altă facilitate a limbajului PHP īn ceea ce priveşte funcţiile este aceea că suportă variabile de tip funcţie. Acest lucru este util atunci cānd se folosesc liste de funcţii pentru prelucrarea anumitor tipuri de date. Pentru a atribui un nume de funcţie unei variabile īn PHP se foloseşte aceeaşi construcţie ca īn cazul atribuirii unui şir de caractere, şi anume, o variabilă va primi ca valoare numele funcţiei scris īntre ghilimele simple sau duble. Īn cazul īn care interpretorul PHP găseşte un nume de variabilă urmată de o listă de parametri, acesta caută funcţia pe care variabila o referă şi īn cazul īn care există, o execută. Variabilele de tip funcţie nu funcţioneaza cu construcţii ale limbajului ca echo, unset, isset, empty, include etc. Mai jos aveţi un exemplu care ilustrează modul de lucru cu variabilele de tip funcţie.


Cod:

<?php
function produs($a, $b)
    {
    return $a * $b;
    }

function suma($a, $b)
    {
    return $a + $b;
    }

$operatie = 'produs';
$rez = $operatie(4, 5);
echo "4 * 5 = <b>".$rez."</b><br>";
$operatie = 'suma';
$rez = $operatie(4, 5);
echo "4 + 5 = <b>".$rez."</b><br>";
?>


Rezultat:

4 * 5 = 20
4 + 5 = 9


_______________________________________


" Cui nu-i place cum gandesc multa    ii doresc ! "



pus acum 17 ani
   
Pagini: 1  

Mergi la