Curs Php-mysql

Incepand cu versiunea 5.3, PHP a introdus Functii Anonime, cunoscute si cu denumirea Closures.
Acest tip de functii sunt fara nume. Sunt utile mai ales in retuenarea unor valori la apeluri in cadrul altor functii.

1. Exemplu, functie anonima folosita pentru returnarea unei valori intr-o functie PHP.
<?php
$arr = array(' hello word ', ' Have <b>good day</b>');

// sterge tag-urile si spatiile exterioare din fin fiecare element din array
// Face majuscula prima litera a fiecarui cuvant
$arr = array_map(function($elm){
 return ucwords(trim(strip_tags($elm)));
}, $arr);

var_export($arr);            // array ( 0 => 'Hello Word', 1 => 'Have Good Day' )
?>

2. Closures pot fi utilizate si ca valori ale variabilelor (observati cum e apelata functia, folosind numele variabilei, inclusiv caracterul $).
<?php
$website = function($name) {
  return 'http://www.'. $name. '.net';
};

echo $website('coursesweb');           // http://www.coursesweb.net
echo $website('marplo');               // https://marplo.net
?>

3. Closures pot fi create si in interiorul altor functii. In urmatorul exemplu se foloseste closures pt creare liste HTML, <li>.
<?php
// primeste un array cu elementele ce vor forma liste <li>
function ulList($ar_items) {
  $li = function($item) {
    return '<li>'. $item. '</li>';
  };

  // parcurge array-ul din parametru, apeleaza $li() ca sa creeze <ul><li>
  $ul = '<ul>';
  foreach($ar_items as $item) {
    $ul .= $li($item);
  }
  $ul .= '<ul>';

  return $ul;
}

$ar_items = array('li 1', 'li 2', 'li 3');
echo ulList($ar_items);         // <ul><li>li 1</li><li>li 2</li><li>li 3</li><ul>
?>

- Un alt exemplu cu functie anonima in interiorul altei functii. Observati utilizarea lui use() , pentru a putea folosi variabile din afara functiei anonime in interiorul ei.
<?php
function test($a) {
  $b = $a / 2;
  $c = function($a) use($b) {
    return $a + $b;
  };

  return $c($a);
}

echo test(10);         // 15
?>

4. Closures pot fi un instrument util si in programarea orientata pe obiecte. Incepand cu PHP 5.4 , expresia $this poate fi utilizata in functii anonime.
<?php
class A {
  private $value = 1;
  public function getVal() {
    return function() { return $this->value * 2; };
  }
}

$a = new A;
echo $a->getVal();        // 2
?>

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care atribut specifica adresa unde sunt trimise datele din formular?
method action name
<form action="script.php" method="post"> ... </form>
Ce proprietate CSS desparte cuvinte lungi, adaugand pe rand nou?
word-wrap line-height font-size
#id {
  width: 100px;
  word-wrap: break-word;
}
Ce functie aranjeaza elementele din array in ordine alfabetica, bazat pe valorile lor?
pop() sort() shift()
var tutorials = ["php", "html", "css", "flash"];
tutorials.sort();
alert(tutorials[0]);          // css
Indicati functia care returneaza valoarea ultimului element din array.
current() next() end()
$code =[10=>"Perl", 20=>"PHP", 21=>"Python", 30=>"JavaScript");
$last = end($code);
echo $last;      // JavaScript
Alegeti verbul auxiliar corect care trebuie in propozitia: "Her plane ... just arrived".
have has does
Her plane has just arrived.
- Avionul ei tocmai a sosit.
Indicati forma corecta a verbului SER (a fi) in propozitia: "Vosotros ... muy simpáticos".
son soy sois
Vosotros sois muy simpáticos.
- Sunteti foarte simpatici.
PHP Functii Anonime - Closures

Last accessed pages

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (243101)
  2. Creare si editare pagini HTML (74929)
  3. Pronumele personal (6242)
  4. MySQL JOIN, INNER, LEFT, RIGHT (3210)
  5. Subclase cu extends si Mostenire (719)

Popular pages this month

  1. Exercitii engleza - English Tests and exercises - Grammar (446)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (435)
  3. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (376)
  4. Prezentul simplu si continuu - Present Tense Simple and Continuous (286)
  5. Gramatica limbii engleze - Prezentare Generala (281)