PHP - Named Arguments: A Beginner's Guide

Hallo da, ambitionierte PHP-Entwickler! Heute machen wir uns auf eine aufregende Reise in die Welt der benannten Argumente in PHP. Keine Sorge, wenn Sie neu im Programmieren sind – ich werde Sie Schritt für Schritt durch dieses Konzept führen, mit vielen Beispielen und Erklärungen. Also, tauchen wir ein!

PHP - Named Arguments

Was sind benannte Argumente?

Bevor wir ins tiefere Wasser springen, lassen Sie uns verstehen, was benannte Argumente sind. In PHP geben wir beim Aufruf einer Funktion typischerweise Argumente in einer bestimmten Reihenfolge weiter. Benannte Argumente ermöglichen es uns, durch den Namen festzulegen, welchem Parameter wir einen Wert übergeben, anstatt auf die Reihenfolge zu achten.

Stellen Sie es sich wie das Adressieren eines Briefes vor. Anstatt zu hoffen, dass das Postamt herausfindet, wohin jede Zeile der Adresse gehört, beschriften Sie jeden Teil: "Name:", "Straße:", "Stadt:", etc. Genau das tun benannte Argumente für unsere PHP-Funktionen!

Beispiel für benannte Argumente

Lassen Sie uns mit einem einfachen Beispiel beginnen, um benannte Argumente in Aktion zu sehen.

function greet($name, $greeting = "Hello") {
echo "$greeting, $name!";
}

greet(name: "Alice");

In diesem Beispiel verwenden wir ein benanntes Argument, um den $name-Parameter anzugeben. Wenn wir diesen Code ausführen, wird die Ausgabe sein:

Hello, Alice!

Lassen Sie uns das einmal auseinandernehmen:

  1. Wir haben eine Funktion namens greet definiert, die zwei Parameter annimmt: $name und $greeting (mit dem Standardwert "Hello").
  2. Beim Aufruf der Funktion haben wir name: "Alice" verwendet, um anzugeben, dass "Alice" dem $name-Parameter zugewiesen werden soll.
  3. Da wir keinen Wert für $greeting angegeben haben, wird der Standardwert "Hello" verwendet.

Die Vorteile von benannten Argumenten

Vielleicht fragen Sie sich, warum Sie sich die Mühe mit benannten Argumenten machen sollten.Nun, meine lieben Schüler, lassen Sie mich eine kleine Geschichte aus meinen frühen Programmiertagen teilen.

Ich habe einmal Stunden damit verbracht, einen Funktionsaufruf zu debuggen, bei dem ich die Reihenfolge der Argumente vertauscht hatte. Wenn ich damals nur schon von benannten Argumenten gewusst hätte! Sie bieten mehrere Vorteile:

  1. Verbesserte Lesbarkeit: Es ist klar, welcher Wert welchem Parameter zugewiesen wird.
  2. Flexibilität: Sie können optionalen Parameter problemlos überspringen.
  3. Weniger anfällig für Fehler: Sie sind weniger wahrscheinlich, die Reihenfolge der Argumente zu vertauschen.

Kombination von benannten Argumenten mit positionellen Argumenten

Nun, lassen Sie uns einen Schritt weiter gehen. Sie können tatsächlich benannte Argumente zusammen mit traditionellen positionellen Argumenten verwenden. Sehen wir uns ein Beispiel an:

function createUser($username, $email, $age = 18, $country = "USA") {
echo "Created user: $username, Email: $email, Age: $age, Country: $country";
}

createUser("johndoe", email: "[email protected]", country: "Canada");

Dies wird die Ausgabe sein:

Created user: johndoe, Email: [email protected], Age: 18, Country: Canada

Lassen Sie uns das auseinandernehmen:

  1. Wir rufen createUser mit einer Mischung aus positionellen und benannten Argumenten auf.
  2. "johndoe" wird als erstes positionelles Argument übergeben, sodass es dem $username-Parameter zugewiesen wird.
  3. Wir verwenden benannte Argumente für email und country.
  4. Wir überspringen den $age-Parameter, sodass der Standardwert 18 verwendet wird.

Übergabe von benannten Argumenten aus einem Array

Hier ist ein cooler Trick: Sie können benannte Argumente aus einem Array mit dem ... (Spread)-Operator übergeben. Dies kann sehr praktisch sein, wenn Sie mit Daten aus einer Datenbank oder einer API arbeiten. Sehen wir uns an, wie es funktioniert:

function summarize($name, $age, $occupation) {
echo "$name is $age years old and works as a $occupation.";
}

$person = [
"name" => "Emma",
"age" => 28,
"occupation" => "Software Developer"
];

summarize(...$person);

Dies wird die Ausgabe sein:

Emma is 28 years old and works as a Software Developer.

Hier ist, was vor sich geht:

  1. Wir definieren eine summarize-Funktion, die drei Parameter erwartet.
  2. Wir erstellen ein assoziatives Array $person mit Schlüsseln, die den Namen unserer Funktionsparameter.matchen.
  3. Wir verwenden den Spread-Operator ..., um unser Array in benannte Argumente zu erweitern.

Diese Technik kann eine echte Zeitersparnis sein, wenn Sie mit großen Datenmengen arbeiten!

Benannte Argumente: Best Practices

Wie bei jedem mächtigen Werkzeug ist es wichtig, benannte Argumente klug zu verwenden. Hier sind einige Tipps aus meinen Jahren des Unterrichtens:

  1. Seien Sie konsistent: Wenn Sie benannte Argumente verwenden, versuchen Sie, sie für alle Parameter oder zumindest für alle optionalen Parameter zu verwenden.
  2. Verwenden Sie sie zur Klarheit: Benannte Argumente sind besonders nützlich, wenn eine Funktion viele Parameter hat, insbesondere optionale.
  3. Denken Sie an die Abwärtskompatibilität: Wenn Sie an einem Projekt arbeiten, das möglicherweise mit älteren PHP-Versionen verwendet wird, denken Sie daran, dass benannte Argumente erst in PHP 8.0 eingeführt wurden.

Schlussfolgerung

Und da haben Sie es, Leute! Wir haben die Welt der benannten Argumente in PHP durchquert. Von der grundlegenden Verwendung bis hin zur Kombination mit positionellen Argumenten und sogar der Übertragung aus Arrays, Sie sind nun darauf vorbereitet, diese mächtige Funktion in Ihrem eigenen Code zu verwenden.

Erinnern Sie sich daran, dass Programmieren alles um die Übung dreht. Also experimentieren Sie mit diesen Konzepten in Ihren eigenen Projekten. Bevor Sie es wissen, werden Sie benannte Argumente wie ein Profi verwenden!

Frohes Coden und bis zum nächsten Mal, halten Sie Ihre geschweiften Klammern in Ordnung! |

Methode Beschreibung
functionName(paramName: value) Grundlegende Verwendung von benannten Argumenten
functionName(value1, paramName: value2) Kombination von positionellen und benannten Argumenten
functionName(...$arrayOfNamedArguments) Übertragung von benannten Argumenten aus einem Array

Credits: Image by storyset