PHP Academy · Lektion

Standard- och variadiska parametrar

Använd standardvärden och variadiska argument i PHP-funktioner.

Lektion 2 av 413 steg

Standard- och variadiska parametrar är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.

Standardvärden för parametrar

Standardvärden gör att anropare kan utelämna argument. Standardvärdet används när argumentet inte skickas med:

<?php
function createUser(string $name, string $role = 'viewer'): string {
    return "$name ($role)";
}

echo createUser('Alice');          // Alice (viewer)
echo createUser('Bob', 'admin');   // Bob (admin)

Regler för standardvärden

Viktiga regler för standardparametrar:

  • Parametrar med standardvärden måste komma efter obligatoriska parametrar
  • Standardvärden måste vara konstanta uttryck — inte funktionsanrop eller variabler
  • Namngivna argument i PHP 8 gör ordningskravet mindre strikt

Nullbara parametrar

Använd ?type för att tillåta NULL som ett giltigt argument, med NULL som standardvärde:

<?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 #42

Variadiska funktioner med ...

Använd ... före en parameter för att ta emot ett valfritt antal argument som en array:

<?php
function sum(int ...$numbers): int {
    return array_sum($numbers);
}

echo sum(1, 2, 3);        // 6
echo sum(10, 20, 30, 40); // 100

Variadiska parametrar med obligatoriska parametrar

Det går att blanda obligatoriska parametrar med en variadisk parameter sist:

<?php
function logMessage(string $level, string ...$messages): void {
    foreach ($messages as $msg) {
        echo "[$level] $msg" . PHP_EOL;
    }
}

logMessage('INFO', 'App started', 'Config loaded');

Spridningsoperatorn vid anrop

Använd ... när en funktion anropas för att sprida en array som enskilda argument:

<?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);  // 10

Namngivna argument (PHP 8)

Namngivna argument gör att värden kan skickas med parameternamn, oberoende av ordningen:

<?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>

Namngivna argument med inbyggda funktioner

Namngivna argument fungerar även med PHP:s inbyggda funktioner:

<?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() i äldre kod

Före den variadiska syntaxen i PHP 5.6 användes func_get_args() för att komma åt alla argument. Det kan förekomma i äldre kod:

<?php
function legacySum(): int {
    $args = func_get_args();
    return array_sum($args);
}

echo legacySum(1, 2, 3, 4);  // 10
// Modern: use int ...$numbers instead

Typdeklarerade variadiska parametrar

Kombinera typdeklarationer med variadiska parametrar för strikt indata:

<?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 mode

Kombinera standardvärden och namngivna argument

Namngivna argument och standardvärden fungerar tillsammans och ger maximal flexibilitet:

<?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);

Snabb kontroll

Vad gör operatorn ... i en PHP-funktions definition?

Sammanfattning: standardvärden och variadiska parametrar

Sammanfattning:

  • Standardvärden gör parametrar valfria
  • Parametrar med standardvärden placeras efter obligatoriska parametrar
  • ?type tillåter NULL med ett valfritt standardvärde
  • ...$args samlar variadiska argument i en array
  • Spridningsoperatorn ...$arr expanderar en array vid funktionsanropet
  • Namngivna argument (PHP 8) skickas med namn, inte position
Gratis att börja

Lär dig PHP med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
49
Lektioner
195

Vanliga frågor

Är lektionen ”Standard- och variadiska parametrar” gratis?

Ja – hela texten till ”Standard- och variadiska parametrar” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Standard- och variadiska parametrar”?

Använd standardvärden och variadiska argument i PHP-funktioner. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig PHP Academy?

Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Standard- och variadiska parametrar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här PHP Academy-lektionen?

Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Definiera och anropa funktioner
  2. Standard- och variadiska parametrar
  3. Variabelomfång: lokalt och globalt
  4. Anonyma funktioner och closures
← Tillbaka till PHP Academy