Um die Syntax für Funktionen mit optionalen Parametern im PHP-Handbuch anzuzeigen, werden Klammern um jeden Satz abhängiger optionaler Parameter verwendet. Für die date()
Funktion lautet das Handbuch beispielsweise:
string date ( string $format [, int $timestamp = time() ] )
Wobei $timestamp
ein optionaler Parameter ist und wenn er leer gelassen wird, wird standardmäßig der time()
Rückgabewert der Funktion verwendet.
Wie erstellen Sie optionale Parameter wie diese, wenn Sie eine benutzerdefinierte Funktion in PHP definieren?
function dosomething($var1, $var2, $optionalValue = null)
Ich habe diese bessere Option gefunden.Wenn Sie diese Funktionalität jedoch benötigen:
Es
$bar
wird natürlich nicht erwartet, dass dies ein Boolescher Wert ist.quelle
$bar === false
- dies ist eine Aktion, die ausgeführt werden sollte, wenn dies standardmäßig der Fall$bar
istfalse
. Dies vermeidet falsche Aktionen, wenn sie0
übergeben werden, so dass es funktioniert - WENN kein Boolescher Wert benötigt wird. Wie Kzqai sagte, ist die Verwendung einer allgemeineren Lösung$bar = null
, da dies auch verwendet werden kann, wenn die Werte von $ bar boolesch sind. Der Test wird dannif (is_null($bar))
oderif ($bar === null)
.Einige Notizen, die ich auch nützlich fand:
Behalten Sie Ihre Standardwerte auf der rechten Seite.
Der Standardwert des Arguments muss ein konstanter Ausdruck sein. Es kann keine Variable oder ein Funktionsaufruf sein.
quelle
Geben Sie dem optionalen Argument einen Standardwert.
quelle
Die Datumsfunktion würde ungefähr so definiert sein:
Normalerweise würden Sie den Standardwert wie folgt setzen:
Es sind jedoch nur Literale gültige Standardargumente, weshalb ich
null
im ersten Beispiel nicht als Standardargument verwendet$timestamp = time()
und es mit einer Nullprüfung kombiniert habe. Literale umfassen Arrays (array()
oder[]
), Boolesche Werte, Zahlen, Zeichenfolgen undnull
.quelle
Wenn Sie nicht wissen, wie viele Attribute verarbeitet werden müssen, können Sie
...
das in PHP 5.6 eingeführte Token ( ) für die Liste variabler Argumente verwenden ( siehe vollständige Dokumentation hier ).Syntax:
Beispielsweise:
Wie Sie sehen können, wandelt dieses Token im Grunde alle Parameter in ein Array um, das Sie nach Belieben verarbeiten können.
quelle