Wie erstellt man optionale Argumente in PHP?
In das PHP-Handbuch, um zu zeigen Sie die syntax für Funktionen mit optionalen Parametern, verwenden Sie Klammern um jeden Satz von abhängigen optionalen parameter. Zum Beispiel, für die date()
Funktion, die Anleitung liest:
string date ( string $format [, int $timestamp = time() ] )
Wo $timestamp
ist ein optionaler parameter, wenn leer gelassen, wird standardmäßig der time()
Funktion Rückgabewert.
Wie gehen Sie zum erstellen von optionalen Parametern, wie dies bei der Definition einer benutzerdefinierten Funktion in PHP?
InformationsquelleAutor der Frage gregh | 2008-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Viel wie das Handbuch, verwenden Sie ein Gleichheitszeichen (
=
) melden Sie sich bei Ihrer definition der Parameter:InformationsquelleAutor der Antwort Jeff Winkworth
Wenn Sie diese Funktionalität benötigen jedoch:
Vorausgesetzt
$bar
ist nicht zu erwarten, boolean sein natürlich.InformationsquelleAutor der Antwort Ross
Einige Hinweise, dass fand ich auch hilfreich:
Halten Sie Ihre Standard-Werte auf der rechten Seite.
Den default-Wert muss das argument ein konstanter Ausdruck sein. Es kann nicht sein, eine variable oder ein Funktionsaufruf sein.
InformationsquelleAutor der Antwort gregh
Geben das optionale argument einen default-Wert.
InformationsquelleAutor der Antwort mk.
Wenn Sie nicht wissen, wie viele Attribute müssen verarbeitet werden, können Sie die Variable Liste von Argumenten token(
...
) eingeführt in PHP 5.6 (sehen Sie die volle Dokumentation hier).Syntax:
Beispiel:
Wie Sie sehen können, dieses token dreht sich im Grunde alle Parameter um ein array, das du verarbeiten kann, in irgendeiner Weise, die Sie mögen.
InformationsquelleAutor der Antwort Gergely Lukacsy
Die Datum-Funktion definiert werden würde, so etwas wie dieses:
Normalerweise würde man den default-Wert wie diese:
Jedoch nur Literale gültig sind Standard-Argumente, das ist der Grund, warum ich verwendet
null
als Standard-argument im ersten Beispiel, nicht$timestamp = time()
, und kombiniert es mit einem null-check. Literale enthalten arrays (array()
oder[]
), booleans, numbers, strings undnull
.InformationsquelleAutor der Antwort Lars Gyrup Brink Nielsen