Functii PHP 2
Noi am mai discutat despre functii in lectia Functii si Variabile Globale asa ca pentru lectia de azi am pregatit lucruri putin mai avansate, considerand ca ati trecut la un nou nivel de atunci. Inainte de toate doresc sa va spun ca citirea cursului meu nu este de ajuns daca doresti sa ajungi un web developer bun, pentru asta ai nevoie sa practici foarte mult si sa te documentezi cu ajutorul google-ului in avans fata de ce iti spun eu, sa incerci sa creezi scripturi si sa cauti pe google ce nu reusesti, sa intrebi pe forum ce nu intelegi, o sa ai nevoie de multa munca. Fara munca nu o sa reusesti nimic!
- bool function_exists(string $nume_functie)
- array get_defined_functions()
- array func_get_args()
- Functii apelate cu ajutorul variabilelor
- Atribuirea prin referinta
Verifica daca o functie exista. Este folosita pentru a nu redeclara o functie de mai multe ori sau a nu apela o functie care nu exista. Exemplu:
<?php function test(){ return 'Acesta este un test.'; } if(function_exists('test')){ test(); } else{ echo 'Functia test nu exista'; } ?>Output:
Folosit pentru a afla ce functii am definit, returneaza un array multi-dimensional. Arrayul cu index-ul internal are functiile default ale php si cel cu index-ul user le are pe cele definite de noi. Exemplu:
<?php function a(){} function b(){} function c(){} $functii_definite = get_defined_functions(); foreach ($functii_definite['user'] as $key => $value) { echo $key.' => '.$value.'<br/>'; } ?>Output:
Se foloseste in corp-ul functiei si returneaza un array cu argumentele folosite. Este folosita pentru a crea functii cu argumente nelimitate.
Urmariti urmatorul exemplu in care facem o functie care trebuie sa primeasca minim 2 argumente si are argumente nelimitate:
Urmariti urmatorul exemplu in care facem o functie care trebuie sa primeasca minim 2 argumente si are argumente nelimitate:
<?php function insira(){ if(func_num_args() >= 2){ # func_get_args() returneaza un int cu numarul de argumente $args = func_get_args(); foreach ($args as $key => $value) { echo $key.' => '.$value.'<br/>'; } } else{ throw new Exception('Functia '.__FUNCTION__.' trebuie sa primeasca minim 2 argumente!', 1); } } insira(); // apelam functia fara argumente ?>Output daca apelam fara argumente
<?php function insira(){ if(func_num_args() >= 2){ $args = func_get_args(); foreach ($args as $key => $value) { echo $key.' => '.$value.'<br/>'; } } else{ throw new Exception('Functia '.__FUNCTION__.'() trebuie sa primeasca minim 2 argumente!', 1); } } # Apelam functia cu argumente de data aceasta insira('PHP','MySQL','CSS','HTML','JavaScript','jQuery','CakePHP'); ?>Output daca apelam functia cu argumente:
Functiile pot fi apelate chiar si cu ajutorul variabilelor, pentru a intelege ce vreau sa spun va trebui sa analizati foarte atent exemplu urmator:
<?php function simpla(){ echo 'Functia <b>'.__FUNCTION__.'</b> a fost apelata<br/>'; } # Functia apelata va fi cu numele din continutul variabilei $functie = 'simpla'; echo $functie(); function complicata($argument){ echo 'Functia <b>'.__FUNCTION__.'</b> a fost apelata cu argumentul <b>'.$argument.'</b><br/>'; } $de_apelat = 'complicata'; $de_apelat('Se pot folosii si argumente'); ?>Output:
Cred ca deja stiti ce inseamna atribuirea prin referinta din lectia Variabile si Constante. Acum veti invata cum sa atribuiti prin referinta cu o functie. Exemplu:
Observati ca schimband variabila din functie am schimbat si variabila folosita ca argument la apelarea functiei. De mentionat insa ca intr-o functie in care ati folosit atribuirea prin referinta la un argument doar variabile o sa se mai poata folosii ca argumente in acea functie. Folosirea fara variabile va genera o eroare asemanatoare cu Fatal error: Only variables can be passed by reference
<?php function schimba_variabila(&$var){ $var = 'PHP'; } $like = 'ASP'; schimba_variabila($like); echo "Imi place <b>{$like}</b>!"; ?>Output:
Observati ca schimband variabila din functie am schimbat si variabila folosita ca argument la apelarea functiei. De mentionat insa ca intr-o functie in care ati folosit atribuirea prin referinta la un argument doar variabile o sa se mai poata folosii ca argumente in acea functie. Folosirea fara variabile va genera o eroare asemanatoare cu Fatal error: Only variables can be passed by reference
Tags: Curs Php, Tutoriale, Programare Web, Php
Comments
Nota
0
din
0