In Python und anderen gibt es eine spezielle Syntax für Argumentlisten mit variabler Länge:
%Vor%Ich habe das PHP-Handbuch gelesen und es hieß:
PHP 4 und höher unterstützt Argumentlisten mit variabler Länge in benutzerdefinierte Funktionen. Das ist wirklich ganz einfach mit func_num_args (), func_get_arg () und func_get_args () Funktionen.
Es ist keine spezielle Syntax erforderlich, und Argumentlisten können immer noch explizit sein versehen mit Funktionsdefinitionen und wird sich wie normal verhalten.
Ich bekomme den ersten Teil. Sie können beliebig viele Argumente an eine Funktion übergeben, die keine Argumente annimmt, und sie dann als Array mit func_get_args()
usw. abrufen. Ich verstehe jedoch nicht wirklich, was der zweite Teil sagt.
Also, meine Frage ist, gibt es eine spezielle Syntax für Argumente mit variabler Länge oder einige bewährte Methoden, von denen ich nichts weiß? Der Ansatz, den das Handbuch vorschlägt, scheint bestenfalls kludgey zu sein und lässt Ihre Funktion so aussehen, als ob sie keine Argumente annimmt (es sei denn, ich tue es falsch). Sollte ich nicht versuchen, diese Sprachfunktion überhaupt zu verwenden?
Im Gegensatz zu Pythons *
-Operator oder C #% params
-Schlüsselwort müssen Sie in PHP nicht einmal die Argumente mit variabler Länge angeben. Da der zweite Teil beginnt, ist "keine spezielle Syntax erforderlich."
Was den Rest des zweiten Absatzes anbelangt: Wenn Sie alle erforderlichen oder nicht verwandten Argumente vor den Argumenten mit variabler Länge angeben möchten, geben Sie diese in Ihrer Funktionssignatur an, damit Ihre Funktion diese verarbeiten kann. Um die Argumente mit variabler Länge zu erhalten, entfernen Sie die erforderlichen Variablen aus func_get_args()
, wie folgt:
Sie müssen das nicht tun (Sie können immer noch von func_get_args()
abschneiden und seine verschiedenen Elemente entsprechend verwenden), aber es macht Ihren Code selbstdokumentierender.
Hier ist ein realistischeres Beispiel:
%Vor%Dies nennt man eine variadic Funktion .
Seit PHP 5.6 kann eine variable Argumentliste mit dem Operator ...
angegeben werden.
Wie Sie sehen, sammelt der Operator ...
die Variablenliste von Argumenten in einem Array.
Wenn Sie die Variablenargumente an eine andere Funktion übergeben müssen, kann Ihnen ...
immer noch helfen.
Seit PHP 7 kann die variable Liste von Argumenten gezwungen werden, auch all desselben Typs zu sein.
%Vor%Der zweite Teil sagt im Grunde, dass sobald Sie anfangen, die Funktionen des variablen Arguments zu benutzen, dann
%Vor%funktioniert identisch, nur dass die zweite Version 3 Argumente explizit aufgeführt hat. Das ist alles, versuche nicht mehr in eine Manpage zu lesen, als es gibt.
Tags und Links php function variadic-functions