Standard- und variadische Parameter
Verwenden Sie Standardwerte und variadische Argumente in PHP-Funktionen.
Standard- und variadische Parameter ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Standardwerte für Parameter
Standardwerte ermöglichen es Aufrufern, Argumente wegzulassen. Der Standardwert wird verwendet, wenn das Argument nicht übergeben wird:
<?php
function createUser(string $name, string $role = 'viewer'): string {
return "$name ($role)";
}
echo createUser('Alice'); // Alice (viewer)
echo createUser('Bob', 'admin'); // Bob (admin)Regeln für Standardwerte
Wichtige Regeln für Standardwerte von Parametern:
- Parameter mit Standardwerten müssen nach erforderlichen Parametern stehen
- Standardwerte müssen konstante Ausdrücke sein – keine Funktionsaufrufe oder Variablen
- Benannte Argumente in PHP 8 lockern die Anforderung an die Reihenfolge
Nullable Parameter
Verwenden Sie ?type, um NULL als gültiges Argument zuzulassen, wobei NULL der Standardwert ist:
<?php
function findUser(?int $id = null): string {
if ($id === null) {
return 'Searching all users';
}
return "User #$id";
}
echo findUser(); // Searching all users
echo findUser(42); // User #42Variadische Funktionen mit ...
Setzen Sie ... vor einen Parameter, um eine variable Anzahl von Argumenten als Array zu akzeptieren:
<?php
function sum(int ...$numbers): int {
return array_sum($numbers);
}
echo sum(1, 2, 3); // 6
echo sum(10, 20, 30, 40); // 100Variadische Parameter mit erforderlichen Parametern
Sie können erforderliche Parameter mit einem variadischen Parameter am Ende kombinieren:
<?php
function logMessage(string $level, string ...$messages): void {
foreach ($messages as $msg) {
echo "[$level] $msg" . PHP_EOL;
}
}
logMessage('INFO', 'App started', 'Config loaded');Spread-Operator beim Aufruf
Verwenden Sie ... beim Aufruf einer Funktion, um ein Array in einzelne Argumente aufzuspreizen:
<?php
function add3(int $a, int $b, int $c): int {
return $a + $b + $c;
}
$args = [1, 2, 3];
echo add3(...$args); // 6
$extra = [4, 5];
echo add3(1, ...$extra); // 10Benannte Argumente (PHP 8)
Mit benannten Argumenten können Sie Werte anhand des Parameternamens übergeben und dabei die Reihenfolge ignorieren:
<?php
function createTag(string $tag, string $content, string $class = ''): string {
$cls = $class ? " class=\"$class\"" : '';
return "<$tag$cls>$content</$tag>";
}
// Skip $class, pass $content by name
echo createTag(content: 'Hello', tag: 'p');
// <p>Hello</p>Benannte Argumente mit integrierten Funktionen
Benannte Argumente funktionieren auch mit integrierten PHP-Funktionen:
<?php
$arr = [3, 1, 4, 1, 5];
// Traditional positional
$result1 = array_slice($arr, 1, 3);
// Named arguments
$result2 = array_slice(array: $arr, offset: 1, length: 3);
print_r($result1); // [1, 4, 1]func_get_args() – Legacy
Vor der variadischen Syntax in PHP 5.6 wurde func_get_args() verwendet, um auf alle Argumente zuzugreifen. In älterem Code können Sie diese Funktion noch sehen:
<?php
function legacySum(): int {
$args = func_get_args();
return array_sum($args);
}
echo legacySum(1, 2, 3, 4); // 10
// Modern: use int ...$numbers insteadTypisierte variadische Parameter
Kombinieren Sie Typangaben mit variadischen Parametern, um eine strikte Eingabe zu erhalten:
<?php
declare(strict_types=1);
function joinStrings(string $sep, string ...$parts): string {
return implode($sep, $parts);
}
echo joinStrings('-', 'a', 'b', 'c'); // a-b-c
// joinStrings('-', 'a', 42); // TypeError in strict modeStandardwerte und benannte Argumente kombinieren
Benannte Argumente und Standardwerte arbeiten zusammen und bieten maximale Flexibilität:
<?php
function sendEmail(
string $to,
string $subject,
string $body = '',
bool $html = false
): bool {
// simulate send
return true;
}
// Skip $body, pass $html by name
sendEmail('a@b.com', 'Hi', html: true);Kurze Überprüfung
Was bewirkt der Operator ... in einer PHP-Funktionsdefinition?
Zusammenfassung: Standardwerte und variadische Parameter
Zusammenfassung:
- Standardwerte ermöglichen optionale Parameter
- Parameter mit Standardwerten stehen hinter erforderlichen Parametern
?typeerlaubt NULL mit einem optionalen Standardwert...$argssammelt variadische Argumente in einem Array- Der Spread-Operator
...$arrerweitert ein Array an der Aufrufstelle - Benannte Argumente (PHP 8) übergeben Werte anhand des Namens statt der Position
Häufig gestellte Fragen
Ist die Lektion „Standard- und variadische Parameter“ kostenlos?
Ja — der vollständige Text von „Standard- und variadische Parameter“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Standard- und variadische Parameter“?
Verwenden Sie Standardwerte und variadische Argumente in PHP-Funktionen. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Standard- und variadische Parameter“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Funktionen definieren und aufrufen
- Standard- und variadische Parameter
- Variablenbereich: lokal und global
- Anonyme Funktionen und Closures