Domanda

Voglio usare il PHP semplice parser DOM HTML per prendere l'immagine, il titolo, la data e la descrizione di ciascun articolo in una pagina piena di articoli. Quando guardo l'API noto che ha un set_callback che imposta una funzione di callback. Tuttavia non sono sicuro di cosa faccia o come lo userei? In uno degli esempi è stato usato per chiamare una funzione che elimina alcune cose, mi chiedo se devi usarlo per chiamare tutte le funzioni?

Immagino che mi chiedo perché lo uso e cosa fa in quanto non ho mai incontrato una funzione di richiamata prima!

È stato utile?

Soluzione

Ecco un esempio di base della funzione di richiamata:

<?php

function thisFuncTakesACallback($callbackFunc)
{
    echo "I'm going to call $callbackFunc!<br />";
    $callbackFunc();
}

function thisFuncGetsCalled()
{
    echo "I'm a callback function!<br />";
}

thisFuncTakesACallback( 'thisFuncGetsCalled' );
?>

Puoi chiamare una funzione che ha il suo nome memorizzato in una variabile come questa: $ variabile () .

Quindi, nell'esempio sopra, passiamo il nome della funzione thisFuncGetsCalled a thisFuncTakesACallback () che quindi chiama la funzione passata.

Altri suggerimenti

Una funzione di callback utilizzerà quella funzione su qualunque dato venga restituito da un particolare metodo.

Non sono sicuro di come funzioni questa particolare libreria, ma potrebbe essere qualcosa di semplice come:

$html = file_get_html('http://example.com');
$html->set_callback('make_bold');
$html->find('#title'); // returns an array

function make_bold($results) {
// make the first result bold
  return '<b>'.$results[0].'</b>';
}

ovvero, la funzione " make_bold () " verrà eseguito su tutti i dati trovati. Ancora una volta, non sono sicuro di come funzioni questa particolare libreria (ovvero, su quali metodi verrà chiamata la funzione di callback)

Un callback è una funzione, un metodo di un'istanza di oggetto o un metodo statico su una classe. Ad ogni modo, è una specie di puntatore a funzione. In alcune lingue, le funzioni sono di un tipo specifico. Quindi potresti assegnare una funzione a una variabile. Questi sono generalmente chiamati linguaggi orientati alla funzione. Un buon esempio è Javascript.

In PHP, un callback può essere uno dei seguenti:

$fn = 'foo'; // => foo()
$fn = array($obj, 'foo'); // => $obj->foo()
$fn = array('Foo', 'bar'); // => Foo::bar()

Vedi la voce manuale per is_callable .

Puoi richiamare un callback con la funzione piuttosto dettagliata < code> call_user_func .

Defination

Un callback / callable è una semplice funzione (sia anonima o denominata funzione) che passiamo a un'altra funzione come parametro di funzione che nel risultato restituisce quella funzione passata.

Esempio

function iWillReturnCallback($callBackHere){
    return $callBackHere;
}

function iAmCallBack(){
    echo "I am returned with the help of another function";
}

iWillReturnCallback(iAmCallBack());

//--Output -> I am returned with the help of another function

Non essere confuso

Ci sono alcune funzioni predefinite in php che accetta il nome della funzione di callback come stringa nel loro parametro a causa di evitare conflitti tra il nome costante e il nome della funzione. Quindi non essere confuso in questo tipo di cose.

Con PHP 5.3 , ora puoi farlo:

function doIt($callback) { $callback(); }

doIt(function() {
    // this will be done
});

Finalmente un bel modo per farlo. Un'ottima aggiunta a PHP , perché i callback sono fantastici.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top