
Programmazione con PHP possibile che, in occasione, Hai avuto a fare uso di funzioni anonime. Le funzioni anonime sono funzioni che vengono dichiarate nella proprio flusso del codice che stanno sviluppando e supporre che essi sono funzioni che usiamo solo in quel luogo, Quindi, noi non crediamo li apart e la riutilizzo.
Normalmente, Queste funzioni vengono utilizzate come ricevimento di callback altre funzioni o eventi, e trattamento è codificato in loro che tale callback o evento È necessario disporre di. In questo modo, È possibile effettuare uno sviluppo o programmazione orientata agli eventi, più tipici di altre lingue come JavaScript.
Se mai avete programmato in Javascript, Quando fare, Per esempio, una chiamata alla funzione setTimeout, uno dei parametri che ha è un callback la funzione che si desidera eseguire quando si verifica il evento.
1 | setTimeout( function() { console.log( 'test' ); }, 3000 ); |
Lo stesso, in PHP Ci sono momenti in cui è opportuno utilizzare callback come parametri delle funzioni. Quindi ci accingiamo a vedere il possibile utilizzo di una funzione anonima in PHP. Stanno andando a supporre che abbiamo una funzione in cui uno dei loro parametri è un callback:
1 | nombre_funcion( $parametro1, $parametro2, $callback = '' ); |
nel parametro $callback, Abbiamo potuto ottenere direttamente la nome della funzione che vogliono essere eseguito e che hanno precedentemente definiti, entrambi, direttamente un funzione anonima. Vedremo le due forme:
- Chiamando un in precedenza definito funzione:
1 2 3 4 5 | function mi_funcion() { //código de mi_funcion } nombre_función ( $parametro1, $parametro2, 'mi_funcion' ); |
- Attraverso l'uso di un funzione anonima:
1 2 3 4 5 | nombre_funcion( $parametro1, $parametro2, function() { //código de la función anónima } ); |
Come passare parametri o variabili di funzioni anonime
Quando usiamo funzioni anonime, all'interno del codice di questi, Non abbiamo accesso per la variabili o gli oggetti definiti in precedenza nella il flusso di codice, così, Se è necessario fare riferimento ad alcuni di loro, entrambi Noi rendiamo più globale, neanche noi diamo accesso a loro, come vedremo di seguito:
Si supponga che il esempio precedente con alcuni codice precedente aggiunto:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() { //Desde aquí no tengo acceso a la variable $aux } ); |
All'interno della funzione anonima Non abbiamo accesso alla variabile $aux definito in precedenza. Per poter utilizzare questa variabile, Dobbiamo farlo nel modo seguente:
1 2 3 4 5 6 7 | $aux = 'Esto es una prueba'; nombre_funcion( $parametro1, $parametro2, function() use ( $aux ) { //Ahora sí que tenemos acceso a la variable $aux } ); |
L'aggiunta di, Dopo l'identificatore della funzione funzione(), la parola utilizzare seguiti, tra parentesi, la variabile a cui si vuole accedere a, Siamo permettendo che da all'interno della funzione anonima Abbiamo accesso alla variabile, Quello che noi impedirà dover dichiarare variabili globali istruzioni di utilizzo successivo all'interno della funzione e.
