English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP Grundlagen教程

PHP fortgeschrittener教程

PHP & MySQL

PHP Referenzhandbuch

PHP-Funktion

In diesem教程 Sie lernen, wie Sie Ihre eigenen benutzerdefinierten Funktionen in PHP erstellen.

Integrierte Funktionen in PHP

Funktionen sind unabhängige Code-Blöcke, die spezifische Aufgaben ausführen.

PHP verfügt über eine riesige Sammlung integrierter Funktionen, die Sie direkt in Ihrem PHP-Skript aufrufen und ausführen können, um spezifische Aufgaben zu erledigen, wie z.B. gettype(), print_r(), var_dump und andere.

Sehen Sie sich bitte das PHP-Referenzkapitel an, um eine vollständige Liste nützlicher integrierter PHP-Funktionen zu erhalten.

PHP definierte Funktionen

Neben den integrierten Funktionen ermöglicht PHP auch die Definition eigener Funktionen. Dies ist eine Methode, um wiederverwendbare Code-Pakete zu erstellen, die spezifische Aufgaben ausführen können, und die von der Hauptanwendung getrennt gespeichert und verwaltet werden können. Einige Vorteile der Verwendung von Funktionen sind:

  • Funktionen reduzieren die Wiederholung von Code im Programm - Funktionen erlauben es Ihnen, häufig verwendete Codeblöcke in eine einzige Komponente zu extrahieren. Jetzt können Sie diese Funktion an jedem Ort im Skript aufrufen, um die gleiche Aufgabe auszuführen, ohne denselben Codeblock wiederholt zu kopieren und einzufügen.

  • Funktionen machen die Wartung des Codes einfacher - Da eine Funktion mehrmals verwendet werden kann, werden alle Änderungen im Inneren der Funktion automatisch an allen Stellen implementiert, ohne dass mehrere Dateien geändert werden müssen.

  • Durch Funktionen können Fehler einfacher beseitigt werden - Wenn ein Fehler auftritt, wissen Sie genau, welche Funktion den Fehler verursacht hat und wo Sie sie finden können. Daher wird das Beheben von Fehlern viel einfacher.

  • Funktionen können in anderen Anwendungen wiederverwendet werden - Da Funktionen vom Rest des Skripts getrennt sind, können Sie die gleiche Funktion in anderen Anwendungen leicht wiederverwenden, indem Sie nur die php-Datei, die diese Funktionen enthält, einbinden.

Das nächste Kapitel zeigt Ihnen, wie Sie einfach Ihre eigenen Funktionen in PHP definieren können.

Erstellen und Aufrufen von Funktionen

Die grundlegende Syntax zum Erstellen und Aufrufen einer Funktion kann wie folgt angegeben werden:

function functionName() { 
    //auszuführendes Code
}

Die Deklaration einer benutzerdefinierten Funktion beginnt mit dem Wort function, gefolgt vom Namen der zu erstellenden Funktion, dann Klammern () und schließlich den Funktionscode in geschweiften Klammern { }.

Dies ist ein einfaches Beispiel für eine benutzerdefinierte Funktion, die das heutige Datum anzeigt:

<?php
//Funktion definieren
function whatIsToday() {
    echo "Heute ist " . date('l', mktime());
}
//Funktion aufrufen
whatIsToday();
?>
Testen Sie heraus‹/›

Hinweis:Der Name der Funktion muss mit einem Buchstaben oder einem Unterstrichzeichen beginnen und nicht mit einer Zahl, und kann auch weitere Buchstaben, Ziffern oder Unterstrichzeichen folgen. Der Funktionsname ist nicht großgeschrieben.

Funktionen mit Parametern

Sie können Parameter angeben, wenn Sie eine Funktion definieren, die Werte zur Laufzeit akzeptiert. Die Arbeitsweise der Parameter ist ähnlich wie die Platzhaltervariablen in einer Funktion; sie werden durch die Werte ersetzt, die beim Aufruf der Funktion der Funktion bereitgestellt werden (genannt Parameter).

function myFunc($oneParameter, $anotherParameter) { 
    //auszuführendes Code
}

Sie können so viele Parameter wie Sie möchten definieren. Aber für jeden指定的参数,müssen Sie den entsprechenden Parameter beim Aufruf der Funktion übergeben.

Die in diesem Beispiel enthaltene Funktion getSum() nimmt zwei Ganzzahlwerte als Parameter, addiert sie einfach zusammen und zeigt das Ergebnis im Browser an.

<?php
//Funktion definieren
function getSum($num1, $num2{
  $sum = $num1 + $num2;
  echo "zwei Zahlen$num1und $num2der Summe ist: $sum";
}
 
//Funktion aufrufen
getSum(10, 20);
?>
Testen Sie heraus‹/›

Der Ausgabe des obigen Codes wird sein:

zwei Zahlen10und2Die Summe von 0 ist: 30

Hinweis:Parameter sind die Werte, die Sie an die Funktion übergeben, und Parameter sind die Variablen, die die Funktion in ihren Parametern empfängt. Aber im täglichen Gebrauch sind diese Begriffe austauschbar, d.h. Parameter sind Argumente.

Funktionen mit optionalen Parametern und Standardwerten

Sie können auch Funktionen mit optionalen Parametern erstellen - Es reicht aus, den Namen des Parameters einzufügen, gefolgt von einem Gleichheitszeichen (=) und dann dem Standardwert, wie im folgenden Beispiel gezeigt.

<?php
//Funktion definieren
function customFont($font, $size=1.5{
    echo "<p style=\"font-family: $font; font-size: {$size}em;">Hello, world!/p>";
}
 
//Funktion aufrufen
customFont("Arial", 2);
customFont("Times", 3);
customFont("Courier");
?>
Testen Sie heraus‹/›

Wie Sie sehen können, enthält der dritte Aufruf von customFont () keine zweite Parameter. Dies führt dazu, dass der PHP-Engine die Standardwerte des Parameters $size verwendet, nämlich1.5.

Werte von Funktionen zurückgeben

Funktionen können Werte an das Skript, das die Funktion aufruft, zurückgeben. Der Wert kann jeder Typ sein, einschließlich Arrays und Objekten.

<?php
//Funktion definieren
function getSum($num1, $num2{
    $total = $num1 + $num2;
    return $total;
}
 
//Drucke den Rückgabewert
echo getSum(5, 10); // Ausgabe: 15
?>
Testen Sie heraus‹/›

Eine Funktion kann keine mehreren Werte zurückgeben. Aber Sie können eine ähnliche Ergebnisse durch Rückgabe eines Arrays erzielen, wie im folgenden Beispiel gezeigt.

<?php
//Funktion definieren
function divideNumbers($dividend, $divisor){
    $quotient = $dividend / $divisor;
    $array = array($dividend, $divisor, $quotient);
    return $array;
}
 
//Variablen als Array zuweisen
list($dividend, $divisor, $quotient) = divideNumbers(10, 2);
echo $dividend;  // Ausgabe: 10
echo $divisor;   // Ausgabe: 2
echo $quotient;  // Ausgabe: 5
?>
Testen Sie heraus‹/›

Parameter an Funktionen durch Referenz übergeben

In PHP gibt es zwei Möglichkeiten, Parameter an Funktionen zu übergeben: Wertübergabe und Referenzübergabe. Standardmäßig werden Funktion参数 durch Wertübergabe übergeben, daher hat eine Änderung des Parameters innerhalb der Funktion keinen Einfluss auf die Außenwelt. Aber um zu erlauben, dass eine Funktion ihre Parameter ändert, müssen sie durch Referenz übergeben werden.

Die Methode, Parameter durch Referenz zu übergeben, besteht darin, vor dem Parameternamen im Funktionsdefinitionen das Ampersand-Zeichen (&) hinzuzufügen, wie im folgenden Beispiel gezeigt:

<?php
/* Definieren Sie eine Funktion, die mit einer Zahl multipliziert
und geben Sie den neuen Wert zurück */
function selfMultiply(&$number){
    $number *=
    return $number;
}
 
$mynum = 5;
echo $mynum; // Ausgabe: 5
 
selfMultiply($mynum);
echo $mynum; // Ausgabe: 25
?>
Testen Sie heraus‹/›

Verstehen Sie den Variablenbereich

Sie können Variablen in jeder Stelle eines PHP-Skripts deklarieren. Der Ort der Deklaration bestimmt jedoch den Sichtbarkeitsbereich der Variable im PHP-Programm, d.h. wo die Variable verwendet oder erreicht werden kann. Diese Zugänglichkeit wird alsVariablenbereich.

Standardmäßig sind in einer Funktion deklarierte Variablen lokale Variablen und können nicht von außerhalb der Funktion erreicht oder manipuliert werden, wie im folgenden Beispiel gezeigt:

<?php
//Funktion definieren
function test(){
    $greet = "Hello World!";
    echo $greet;
}
 
test(); // Ausgabe: Hello World!
 
echo $greet; //Erzeugen von Fehlern für nicht definierte Variablen
?>
Testen Sie heraus‹/›

Gleichzeitig erhalten Sie einen Fehler für nicht definierte Variable, wenn Sie versuchen, eine Variable, die im Funktionskörper deklariert wurde, außen zu erreichen oder zu importieren, wie im folgenden Beispiel gezeigt:

<?php
$greet = "Hello World!";
 
//Funktion definieren
function test(){
    echo $greet;
}
 
test();  //Erzeugen von Fehlern für nicht definierte Variablen
 
echo $greet; // Ausgabe: Hello World!
?>
Testen Sie heraus‹/›

Wie aus dem obigen Beispiel zu sehen ist, können Variablen, die im Funktionskörper deklariert werden, nicht von außen erreicht werden, und umgekehrt können sie nicht von innen auf Variablen außen zugreifen. Diese Trennung verringert die Möglichkeit, dass Variablen im Funktionskörper von Variablen im Hauptprogramm beeinflusst werden.

Hinweis:Sie können für Variablen in verschiedenen Funktionen den gleichen Namen verwenden, da lokale Variablen nur von der Funktion erkannt werden, die sie deklariert hat.

global Schlüsselwort

In einigen Fällen müssen Sie Variablen aus dem Hauptprogramm in eine Funktion importieren und umgekehrt. In diesem Fall können Sie vor den Variablen im Funktionskörper den Schlüsselwort global verwenden. Dieses Schlüsselwort wandelt die Variable in eine globale Variable um, die sowohl im Inneren als auch im Äußeren der Funktion sichtbar oder zugänglich ist, wie im folgenden Beispiel gezeigt:

<?php
$greet = "Hello World!";
 
//Funktion definieren
function test(){
    global $greet;
    echo $greet;
}
 
test(); // Ausgabe: Hello World!
echo $greet; // Ausgabe: Hello World!
 
//Werte eine neue Variable zu
$greet = "Goodbye";
 
test(); // Ausgabe: Goodbye
echo $greet; // Ausgabe: Goodbye
?>
Testen Sie heraus‹/›

Sie werdenPHP-Klassen und ObjekteIn einem Kapitel finden Sie mehr Informationen über Sichtbarkeit und Zugriffssteuerung.

Erstellen Sie eine rekursive Funktion

Rekursive Funktionen sind Funktionen, die sich selbst wiederholt aufrufen, bis eine Bedingung erfüllt ist. Rekursive Funktionen werden normalerweise zur Lösung komplexer mathematischer Berechnungen oder zur Verarbeitung tief eingebetteter Strukturen verwendet, z.B. das Ausgeben aller Elemente einer tief eingebetteten Liste.

Der folgende Beispiel zeigt, wie rekursive Funktionen funktionieren.

<?php
//Definieren Sie die rekursive Funktion
function printValues($arr) {
    global $count;
    global $items;
    
    //Überprüfen Sie, ob $arr ein Array ist
    if(!is_array($arr)){
        die("ERROR: Input is not an array");
    }
    
    /*
        Durchsuchen Sie das Array, wenn value selbst ein Array ist, rufen Sie rekursiv auf
        Die Funktion fügt die gefundenen Werte zum Ausgabearray hinzu
        und erhöhen Sie den Zähler für jeden gefundenen Wert1
    */
    foreach($arr as $a){
        if(is_array($a)){
            printValues($a);
        } else{
            $items[] = $a;
            $count++;
        }
    }
    
    //Geben Sie die Gesamtzahl und die Werte im Array zurück
    return array('total' => $count, 'values' => $items);
}
 
//Definieren Sie verschachtelte Arrays
$species = array(
    "Vögel" => array(
        "Adler",
        "Papagei",
        "Schwan"
    ),
    "Mammalia" => array(
        "Mensch"
        "Katze" => array(
            "Löwe"
            "Tiger",
            "Jaguar"
        ),
        "Elefant",
        "Mensch"
    ),
    "Reptilien" => array(
        "Schlange" => array(
            "Kobra" => array(
                "Königskobra"
                "ägyptische Kobra"
            ),
            "Viper",
            "Anaconda"
        ),
        "Crocodile",
        "Dinosaur" => array(
            "T-rex",
            "Alamosaurus"
        )
    )
);
 
//Berechnen und drucken Sie die Werte in einer verschachtelten Array
$result = printValues($species);
echo $result['total'] . ' value(s) found: ';
echo implode(', ', $result['values']);
?>
Testen Sie heraus‹/›

Hinweis:Seien Sie vorsichtig bei der Erstellung rekursiver Funktionen, da eine falsch programmierte Code kann zu einem endlosen Zyklus bei der Funktion Aufruf führen.