Definiera och anropa funktioner
Skapa egna funktioner med parametrar och returvärden.
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; // 7Returvä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] startedSkicka 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 — changedFlera 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); // 5Funktionslyftning
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-sensitiveRekursiva 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); // 120Typdeklarationer
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); // 42Namngivna 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: 9Snabbkontroll
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.
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
- Definiera och anropa funktioner
- Standard- och variadiska parametrar
- Variabelomfång: lokalt och globalt
- Anonyma funktioner och closures