PHP Academy · Oppitunti

Funktioiden määrittäminen ja kutsuminen

Omien funktioiden luominen parametrien ja palautusarvojen avulla.

Oppitunti 1/413 vaihetta

Funktioiden määrittäminen ja kutsuminen on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.

Miksi funktioita?

Funktioilla voit koota uudelleenkäytettävän logiikan ja antaa sille nimen, jotta voit kutsua sitä useita kertoja toistamatta koodia. Hyödyt:

  • Toiston välttäminen (DRY-periaate)
  • Helpompi testaaminen ja virheenkorjaus
  • Itsensä dokumentoiva koodi

Funktion määrittäminen

Käytä avainsanaa function, nimeä, valinnaisia parametreja ja runkoa:

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

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

Parametrit ja argumentit

Parametrit ovat määrittelyssä käytettyjä muuttujanimiä; argumentit ovat kutsun yhteydessä välitettäviä todellisia arvoja:

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

Palautusarvot

Käytä komentoa return arvon palauttamiseen kutsujalle. Funktio, jossa ei ole return-lausetta, palauttaa arvon 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

Arvon ja viitteen välittäminen

Oletusarvoisesti PHP välittää argumentit arvona (kopiona). Lisää eteen &, jos haluat välittää argumentin viitteenä:

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

Useita palautuskohtia

Funktiossa voi olla useita return-lauseita aikaisia poistumisia varten:

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

Funktioiden määrittelyjärjestys

PHP-funktiot ovat käytettävissä koko tiedostossa riippumatta siitä, missä ne on määritelty – toisin kuin JavaScriptissä, useimpia PHP-funktioita EI tarvitse määritellä ennen niiden käyttöä:

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

Rekursiiviset funktiot

Funktio, joka kutsuu itseään, on rekursiivinen. Määritä aina perustapaus loputtoman rekursion välttämiseksi:

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

echo factorial(5);  // 120

Tyyppimääritykset

PHP 7+ tukee parametrien ja palautusarvojen tyyppivihjeitä. PHP 8 lisäsi tyypit mixed, never ja leikkaustyypit:

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

Nimetyt ja sisäänrakennetut funktiot

PHP sisältää tuhansia sisäänrakennettuja funktioita. Voit aina tarkistaa ajon aikana, onko funktio olemassa:

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

Useiden arvojen palauttaminen

Palauta useita arvoja palauttamalla taulukko ja pura se kutsukohdassa:

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

Pikatarkistus

Mitä PHP-funktio palauttaa, jos siinä ei ole eksplisiittistä return-lausetta?

Kertaus: funktiot

PHP-funktioiden perusteet:

  • Määritä funktio muodolla function name(params): returnType
  • Välitä argumentit arvona (oletus) tai viitteenä käyttäen merkkiä &
  • Funktiot, joissa ei ole return-lausetta, palauttavat arvon NULL
  • Rekursio edellyttää perustapausta
  • Funktiot ovat käytettävissä koko tiedostossa (määrittelyjärjestys)

Seuraavaksi: oletus- ja vaihtuvamittaiset parametrit.

Aloita maksutta

Opi PHP tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
49
Oppitunnit
195

Usein kysytyt kysymykset

Onko oppitunti ”Funktioiden määrittäminen ja kutsuminen” ilmainen?

Kyllä – oppitunnin ”Funktioiden määrittäminen ja kutsuminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Funktioiden määrittäminen ja kutsuminen”?

Omien funktioiden luominen parametrien ja palautusarvojen avulla. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Funktioiden määrittäminen ja kutsuminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?

Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Funktioiden määrittäminen ja kutsuminen
  2. Oletus- ja variadiset parametrit
  3. Muuttujien näkyvyysalue: paikallinen ja globaali
  4. Nimettömät funktiot ja sulkeumat
← Takaisin: PHP Academy