PHP Academy · Lektion

Definition og kald af funktioner

Opret Deres egne funktioner med parametre og returværdier.

Lektion 1 af 413 trin

Definition og kald af funktioner er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvorfor funktioner?

Funktioner lader dig samle genbrugelig logik og give den et navn, så du kan kalde den flere gange uden at gentage kode. Fordele:

  • Undgå gentagelser (DRY-princippet)
  • Lettere test og fejlfinding
  • Selvdokumenterende kode

Definition af en funktion

Brug nøgleordet function, et navn, valgfri parametre og et indhold:

<?php
function greet(string $name): string {
    return 'Hello, ' . $name . '!';
}

echo greet('Alice'); // Hello, Alice!

Parametre og argumenter

Parametre er variabelnavnene i definitionen; argumenter er de faktiske værdier, der sendes med ved kaldet:

<?php
function add(int $a, int $b): int {
    return $a + $b;  // $a and $b are parameters
}

$sum = add(3, 4);  // 3 and 4 are arguments
echo $sum;  // 7

Returværdier

Brug return til at sende en værdi tilbage til den kaldende kode. En funktion uden returnering returnerer NULL:

<?php
function square(float $n): float {
    return $n * $n;
}

function logMessage(string $msg): void {
    echo '[LOG] ' . $msg . PHP_EOL;
    // void functions must not return a value
}

echo square(4);        // 16
logMessage('started'); // [LOG] started

Videresendelse efter værdi eller reference

Som standard sender PHP argumenter efter værdi (en kopi). Sæt & foran for at sende efter reference:

<?php
function doubleByValue(int $n): void {
    $n *= 2;  // changes only the local copy
}

function doubleByRef(int &$n): void {
    $n *= 2;  // changes the original
}

$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged

doubleByRef($x);
echo $x; // 10 — changed

Flere returneringspunkter

En funktion kan have flere return-sætninger for tidlige afslutninger:

<?php
function divide(float $a, float $b): ?float {
    if ($b === 0.0) {
        return null;  // early return on error
    }
    return $a / $b;
}

var_dump(divide(10, 0));   // NULL
echo divide(10, 2);         // 5

Funktionsløftning

PHP-funktioner er tilgængelige i hele en fil, uanset hvor de er defineret — i modsætning til JavaScript behøver de fleste PHP-funktioner IKKE at blive erklæret før brug:

<?php
echo double(5);  // 10 — works even though double is defined below

function double(int $n): int {
    return $n * 2;
}

// Exception: functions inside conditionals ARE position-sensitive

Rekursive funktioner

En funktion, der kalder sig selv, er rekursiv. Sørg altid for et basistilfælde for at undgå uendelig rekursion:

<?php
function factorial(int $n): int {
    if ($n <= 1) return 1;  // base case
    return $n * factorial($n - 1);  // recursive call
}

echo factorial(5);  // 120

Typedeklarationer

PHP 7+ understøtter typeangivelser for parametre og returværdier. PHP 8 tilføjede mixed, never og skæringstyper:

<?php
declare(strict_types=1);

function clamp(int $value, int $min, int $max): int {
    return max($min, min($max, $value));
}

echo clamp(150, 0, 100);  // 100
echo clamp(-5,  0, 100);  // 0
echo clamp(42,  0, 100);  // 42

Navngivne funktioner vs indbyggede funktioner

PHP leveres med tusindvis af indbyggede funktioner. Du kan altid kontrollere under kørsel, om en funktion findes:

<?php
if (function_exists('mb_strlen')) {
    echo mb_strlen('こんにちは');  // 5 — correct multi-byte length
} else {
    echo strlen('こんにちは');      // 15 — byte count, wrong for UTF-8
}

Returnering af flere værdier

Returnér flere værdier ved at returnere et array og destrukturere det på kaldestedet:

<?php
function minMax(array $arr): array {
    return [min($arr), max($arr)];
}

[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max";  // Min: 1, Max: 9

Hurtigt tjek

Hvad returnerer en PHP-funktion uden en eksplicit return-sætning?

Opsamling: Funktioner

Det grundlæggende om PHP-funktioner:

  • Definér med function name(params): returnType
  • Send efter værdi (standard) eller efter reference med &
  • Funktioner uden returnering giver NULL tilbage
  • Rekursion kræver et basistilfælde
  • Funktioner er tilgængelige i hele filen (funktionsløftning)

Næste emne: standardparametre og variable antal parametre.

Gratis at komme i gang

Lær PHP med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
49
Lektioner
195

Ofte stillede spørgsmål

Er lektionen “Definition og kald af funktioner” gratis?

Ja — hele teksten til “Definition og kald af funktioner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Definition og kald af funktioner”?

Opret Deres egne funktioner med parametre og returværdier. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på PHP Academy?

Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Definition og kald af funktioner”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne PHP Academy-lektion?

Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Definition og kald af funktioner
  2. Standard- og variadiske parametre
  3. Variabelscope: lokal og global
  4. Anonyme funktioner og closures
← Tilbage til PHP Academy