PHP – Kanntest du schon? – Variadische Funktion/Splat Operator

Varidische Funktionen gibt es in PHP seit Version 4. Bis Version 5.5 konnte man diese aber nur über spezielle Hilfsfunktionen verwenden. Ab Version 5.5 kam der sogenannte Splat Operator dazu.

Das einfachste Beispiel für eine variadische Funktion ist die Formatierung eines Strings. In vielen Programmiersprachen gibt es bereits Funktionen dafür:

  • C: printf(“Mein Name ist %s! Ich bin %d Jahre alt.”, “Matt”, 25);
  • C#: String.Format(“Mein Name ist {0}! Ich bin {1} Jahre alt.”, “Matt”, 25);
  • Java: String.Format(“Mein Name ist %1$s! Ich bin %2$d Jahre alt.”, “Matt”, 25);
  • PHP: sprintf(“Mein Name ist %s! Ich bin %d Jahre alt.”, “Matt”, 25);
  • Genero/4gl: SFMT(“Mein Name ist %1! Ich bin %2 Jahre alt.”, “Matt”, 25);
  • weitere

Ich habe in PHP folgende einfache variadische Funktion geschrieben, die mir einen Text, wie die Funktionen oben formatieren soll, jedoch in C# Schreibweise, wobei ich die Funktion wegen der Länge SFMT nennte.

Der Splat Operator findet sich im zweiten Parameter namens $params wieder. Hier sind drei Punkte () vor den Parameter geschrieben. Dies ist der Splat Operator in PHP.

Ein Aufruf könnte wie folgt aussehen:

Wir können hier ab dem zweiten Parameter ganz normal Kommata getrennt immer mehr Parameter angeben, alle werden über den einen Parameter $params abgerufen.