online: 11; azi: 500; total: 52506 Webdesign - Phpmysql - 70

Functii pentru lucru cu functii

Aici gasiti functii PHP ce pot fi folosite in lucrul cu functii create /definite in script.



1.   call_user_func("func", arg)

- Apeleaza functia "func" dandu-i valoarea argumentului "arg". Returneaza rezultatul functiei apelate, sau FALSE.

<?php
function func($arg1, $arg2) {
  return "$arg1 - $arg2";
}

// Apeleaza func()
echo call_user_func("func", 'www.discant.ro', 'net');       // www.discant.ro - net


// Sau o metoda mai avansata, prin crearea si apelarea functiei in acelasi timp (PHP 5.3 +)
echo call_user_func(function($arg) { echo "Tutoriale $arg"; }, 'php');       // Tutoriale php
?>

2.   call_user_func_array("func", array_arg)

- Apeleaza o functie ("func") dandu-i valoarea argumentelor dintr-un Array (array_arg). Returneaza rezultatul functiei apelate, sau FALSE.

<?php
// Functie creata standard
function func1($arg1, $arg2) {
  return $arg1 + $arg2;
}

// Functie creata in variabila (PHP 5.3 +)
$func2 = function($arg1, $arg2) {
  return $arg1 * $arg2;
};

// Matricea pt. parametri
$aray_p = array(7, 8);

// Apeleaza func1()
echo call_user_func_array("func1", $aray_p);       // 15


// Apeleaza $func2
echo call_user_func_array($func2, $aray_p);       // 56
?>

3.   create_function("argumente", "cod_functie")

- Creaza dinamic o functie ce va avea argumentele "argumente" si codul ce-l executa "cod_functie". Returneaza functia creata (poate fi asociata cu un nume de variabila), sau FALSE. ("argumente" si "cod_functie" trebuie sa fie siruri)

<?php
$var = create_function('$arg', 'return $arg*2;');
echo $var(8);       // 16
?>

4.   func_num_args()

- Returneaza numarul de argumente primite de o functie. Se foloseste in interiorul acelei functii.

<?php
function test() {
  // Preia si afiseaza numarul de argumente primite
  $nr_args = func_num_args();
  echo "Numar argumente primite: $nr_args";
}

// Apeleaza functia
test(1, 2, 'a');       // Numar argumente primite: 3
?>

5.   func_get_arg(nr)

- Returneaza argumentul cu index-ul "nr" din cele primite de o functie (primul argument are index 0). Se foloseste in interiorul acelei functii. Daca numarul de argumente e mai mic decat "nr", returneaza FALSE.

<?php
function test() {
  // Preia numarul de argumente primite
  $nr_args = func_num_args();

  // Daca nr. argumente e mai mare sau egal cu 2, afiseaza argumentul cu index 2
  if ($nr_args>=2) {
    echo 'Argumentul cu indice 2 e: '. func_get_arg(2);
  }
}

// Apeleaza functia
test(1, 'php', 'www.discant.ro');       // Argumentul cu indice 2 e: www.discant.ro
?>

6.   func_get_args()

- Returneaza o matrice cu argumentele primite de o functie. Se foloseste in interiorul acelei functii..

<?php
function test() {
  // Preia argumentele primite
  $array_args = func_get_args();

  // Afiseaza structura matricei cu argumentele
  print_r($array_args);
}

// Apeleaza functia
test(1, 'tutoriale', 'www.discant.ro');       // Array ( [0] => 1 [1] => tutoriale [2] => www.discant.ro )
?>

7.   function_exists("function")

- Returneaza TRUE daca functia "function" (numele ei intre ghilimele) exista, altfel, returneaza FALSE.


8.   register_shutdown_function("func", param1, param2, ...)

- Inregisteaza functia "func" sa fie executata la terminarea scriptului (dupa executarea comenzilor din el), sau dupa apelarea lui "exit()". "param1", "param2" sunt optionali si reprezinta parametri ce vor fi transferati la "func".

<?php
function end_script() {
  echo 'Terminare script';
}

// Inregistreaza sa fie executata functia end() la sfarsit de executie a scriptului
register_shutdown_function("end_script");

// Se executa cod oarecare
echo (2+3).' - ';

// Rezultatul functiei va fi afisat ultimul, desi a fost inregistrata pt. executie inaintea echo-ului de sus
// Scriptul va returna: 5 - Terminare script
?>

- O lista mai detaliata cu aceste functii gasiti la pagina oficiala Functii pentru functii