PHP Academy · Lektion

Definiera och anropa funktioner

Skapa egna funktioner med parametrar och returvärden.

Lektion 1 av 413 steg

Definiera och anropa funktioner är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 1 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.

Varför funktioner?

Funktioner låter dig paketera återanvändbar logik och ge den ett namn, så att du kan anropa den flera gånger utan att upprepa koden. Fördelar:

  • Undvik upprepning (DRY-principen)
  • Enklare testning och felsökning
  • Självdokumenterande kod

Definiera en funktion

Använd nyckelordet function, ett namn, valfria parametrar och en kropp:

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

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

Parametrar och argument

Parametrar är variabelnamnen i definitionen; argument är de faktiska värden som skickas vid anropet:

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

Använd return för att skicka tillbaka ett värde till anroparen. En funktion utan return returnerar 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

Skicka med värde kontra referens

Som standard skickar PHP argument med värde (en kopia). Lägg till & som prefix för att skicka med referens:

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

Flera returpunkter

En funktion kan ha flera return-satser för att avsluta tidigt:

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

Funktionslyftning

PHP-funktioner är tillgängliga i hela filen oavsett var de definieras – till skillnad från JavaScript behöver de flesta PHP-funktioner INTE deklareras före användning:

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

Rekursiva funktioner

En funktion som anropar sig själv är rekursiv. Se alltid till att det finns ett basfall för att undvika oändlig 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

Typdeklarationer

PHP 7+ stöder typangivelser för parametrar och returvärden. PHP 8 lade till mixed, never och intersection types:

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

Namngivna funktioner kontra inbyggda

PHP levereras med tusentals inbyggda funktioner. Du kan alltid kontrollera om en funktion finns vid körning:

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

Returnera flera värden

Returnera flera värden genom att returnera en array och destrukturera den där funktionen anropas:

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

Snabbkontroll

Vad returnerar en PHP-funktion utan en explicit return-sats?

Sammanfattning: funktioner

Grunderna i PHP-funktioner:

  • Definiera med function name(params): returnType
  • Skicka med värde (standard) eller med referens med &
  • Funktioner utan return ger tillbaka NULL
  • Rekursion kräver ett basfall
  • Funktioner är tillgängliga i hela filen (funktionslyftning)

Nästa avsnitt: standardparametrar och variadiska parametrar.

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 ”Definiera och anropa funktioner” gratis?

Ja – hela texten till ”Definiera och anropa funktioner” 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 ”Definiera och anropa funktioner”?

Skapa egna funktioner med parametrar och returvärden. 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 1 av 4.

Hur lång tid tar lektionen ”Definiera och anropa funktioner”?

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