Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:anonymous_functions

Anonyme Funktionen in PHP

Anonyme Funktionen sind das Gegenteil von benannten Funktionen, haben keinen Funktionsnamen und können daher nicht aufgerufen werden. Sie werden lediglich an der Stelle, wo sie erstellt wurden, ausgeführt und geben den Rückgabewert direkt zurück. Mit „use“ ist es möglich ein oder mehrere (durch Komma separiert) Variablen an die Funktion zu übergeben.

Filter-Beispiel:

Im folgenden Beispiel ruft die Funktion array_filter eine anonyme Funktion auf und gibt dessen Ergebnis direkt an die Funktion zurück. Der Name der Variable „val“ ist frei wählbar und repräsentiert das aktuelle Array-Element pro Aufruf.

$moebel = [ [
                "typ" => "Schrank",
                "groesse" => "gross"
            ],
            [
                "typ" => "Komode",
                "groesse" => "klein"
            ],
            [
                "typ" => "Tisch",
                "groesse" => "gross"
            ],
            [
                "typ" => "Stuhl",
                "groesse" => "gross"
            ]
];
 
$keyword = "gross";
 
$gross = array_filter( $moebel, function( $val ) use ($keyword  )
{
    return ( $val['groesse'] == $keyword ) ? true : false;
} );

Die Variable „gross“ enthält nach der Ausführung ein Array mit allen als „gross“ deklarierten Möbeln:

  • Schrank
  • Tisch
  • Stuhl

Sortier-Beispiel:

Mit der folgenden Funktion kann ein Mehrdimensionales Array sortiert werden:

        $autos[0]['marke'] = 'Audi';
        $autos[1]['marke'] = 'VW';
        $autos[2]['marke'] = 'BMW';
        $autos[3]['marke'] = 'Ford';
 
        usort( $autos, function ( $a, $b ) {
            return strcmp( $a['marke'], $b['marke'] );
        } );

Tipp: Um die Zuordnung zu den Schlüsseln/Keys beizubehalten kann anstelle von „usort“ die PHP-Funktion „uasort“ verwendet werden.

php/anonymous_functions.txt · Zuletzt geändert: 2024/03/01 12:42 von webproducer