Home » Articole » Articole » Calculatoare » Programare » PHP » Funcții săgeată în PHP

Funcții săgeată în PHP

postat în: PHP 0

Funcțiile săgeată au fost introduse în PHP 7.4 ca o sintaxă mai concisă pentru funcțiile anonime.

Atât funcțiile anonime, cât și funcțiile săgeată sunt implementate folosind clasa Closure.

Funcțiile săgeată au forma de bază fn (argument_list) =>
expr
.

Funcțiile săgeată acceptă aceleași caracteristici ca și funcțiile anonime, cu excepția faptului că utilizarea variabilelor din domeniul părinte este întotdeauna automată.

Când o variabilă utilizată în expresie este definită în domeniul părinte, aceasta va fi implicit capturată după valoare. În exemplul următor, funcțiile $fn1 și $fn2 se comportă în același mod.

Exemplul #1 Funcțiile săgeată captează automat variabile după valoare


<?php

$y =
1;

$fn1
= fn($x)
=> $x
+
$y;
// equivalent to using $y by
value:
$fn2
= function ($x)
use ($y)
{
return $x
+
$y;
};

var_export($fn1(3));
?>

Exemplul de mai sus va produce:

4

Acest lucru funcționează și dacă funcțiile săgeată sunt imbricate:

Exemplul #2 Funcțiile săgeată captează automat variabilele după valoare, chiar și atunci când sunt imbricate


<?php

$z =
1;
$fn
= fn($x)
=> fn($y)
=> $x
*
$y +
$z;
// Outputs 51
var_export($fn(5)(10));
?>

Similar cu funcțiile anonime, sintaxa funcției săgeată permite semnături de funcții arbitrare, inclusiv tipuri de parametri și returnări, valori implicite, variadici, precum și trecerea și returnarea referințelor secundare. Toate următoarele sunt exemple valide de funcții săgeată:

Exemplul #3 Exemple de funcții săgeți


<?php

fn(array
$x)
=> $x;
static fn(): int
=>
$x;
fn($x
=
42) =>
$x;
fn(&$x)
=> $x;
fn&($x)
=> $x;
fn($x,
...$rest)
=> $rest;

?>

Funcțiile săgeată folosesc legarea variabilelor după valoare. Acest lucru este aproximativ echivalent cu efectuarea unei
use($x)
pentru fiecare variabilă $x utilizată în interiorul funcției săgeată. O legare by-value înseamnă că nu este posibil să se modifice nicio valoare din domeniul exterior. Funcțiile anonime pot fi folosite în schimb pentru legăturile by-ref.

Exemplul #4 Valorile din domeniul exterior nu pot fi modificate prin funcții săgeată


<?php

$x =
1;
$fn
= fn() =>
$x++;
// Has no effect
$fn();
var_export($x);
// Outputs 1

?>

Modificări

Versiunea Descriptierea

7.4.0        Funcțiile săgeată au devenit disponibile.

Note

Notă: Este posibil să utilizați func_num_args(), func_get_arg() și func_get_args() dintr-o funcție săgeată.

Sursa: PHP Manual, licența CC BY 3.0. Traducere și adaptare: Nicolae Sfetcu

Ghid WordPress pentru dezvoltatori
Ghid WordPress pentru dezvoltatori

Resursa esențială care te va ghida pas cu pas în lumea complexă a platformei WordPress.

Nu a fost votat 18.24 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Ghid WordPress pentru începători
Ghid WordPress pentru începători

Descoperă arta gestionării site-urilor web cu WordPress!

Nu a fost votat 13.67 lei25.05 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Proiectarea, dezvoltarea şi întreţinerea siturilor web
Proiectarea, dezvoltarea şi întreţinerea siturilor web

Ghidul complet pentru proiectarea, dezvoltarea și întreținerea siturilor web, o resursă indispensabilă

Nu a fost votat 13.67 lei54.71 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *