PHP Academy · Oppitunti

Luokat, ominaisuudet ja metodit

Määritelkää PHP-luokka ominaisuuksineen ja metodeineen.

Oppitunti 1/413 vaihetta

Luokat, ominaisuudet ja metodit 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.

Johdanto: PHP-luokat

Luokka on suunnitelma olioiden luomista varten. Se määrittelee ominaisuudet (datan) ja metodit (toiminnan). PHP:n olio-ohjelmointiominaisuudet tekevät koodista modulaarisempaa, uudelleenkäytettävämpää ja helpommin ylläpidettävää.

Peruskäsitteet

PHP-luokkien keskeiset käsitteet:

  • Määrittele luokka syntaksilla class ClassName {}
  • Ominaisuudet tallentavat dataa ja metodit määrittelevät toiminnan
  • Luo ilmentymiä syntaksilla new ClassName()
  • Käytä jäseniä ->-nuolioperaattorilla

Luokan määrittely

Esimerkki:

<?php
class Car {
    public string $brand;
    public int    $year;
    public float  $price;

    public function describe(): string {
        return "{$this->year} {$this->brand}";
    }
}

$car = new Car();
$car->brand = 'Toyota';
$car->year  = 2022;
$car->price = 25000.0;

echo $car->describe(); // 2022 Toyota

Näkyvyysmääritteet

Jatkoa:

<?php
class BankAccount {
    public  string $owner;
    private float  $balance;
    protected string $currency;

    // public: accessible everywhere
    // private: only within this class
    // protected: this class + subclasses
}

Tyypitetyt ominaisuudet

Harjoitus:

<?php
class Product {
    public string  $name;
    public float   $price;
    public int     $stock = 0;  // default value
    public bool    $active = true;

    public function inStock(): bool {
        return $this->stock > 0;
    }
}

Ilmentymämetodit

Syvemmälle:

<?php
class Counter {
    private int $count = 0;

    public function increment(): void { $this->count++; }
    public function decrement(): void { $this->count--; }
    public function reset(): void    { $this->count = 0; }
    public function value(): int      { return $this->count; }
}

$c = new Counter();
$c->increment();
$c->increment();
echo $c->value();  // 2

Metodiketjutus

Edistynyt käyttö:

<?php
class QueryBuilder {
    private string $table = '';
    private int    $limit = 100;

    public function from(string $t): static { $this->table = $t; return $this; }
    public function limit(int $n): static   { $this->limit = $n; return $this; }
    public function build(): string {
        return "SELECT * FROM {$this->table} LIMIT {$this->limit}";
    }
}

echo (new QueryBuilder())->from('users')->limit(10)->build();

Luokkavakiot

Käytännön malli:

<?php
class HttpStatus {
    const OK        = 200;
    const NOT_FOUND = 404;
    const ERROR     = 500;

    public static function message(int $code): string {
        return match($code) {
            self::OK        => 'OK',
            self::NOT_FOUND => 'Not Found',
            default         => 'Error',
        };
    }
}

echo HttpStatus::message(HttpStatus::NOT_FOUND);  // Not Found

Vain luku -ominaisuudet (PHP 8.1)

Parhaat käytännöt:

<?php
class Point {
    public function __construct(
        public readonly float $x,
        public readonly float $y,
    ) {}

    public function distanceTo(Point $other): float {
        return sqrt(($this->x - $other->x) ** 2 + ($this->y - $other->y) ** 2);
    }
}

$p1 = new Point(0, 0);
$p2 = new Point(3, 4);
echo $p1->distanceTo($p2);  // 5

Käytännön malli

Kokoa kaikki yhteen käytännön PHP-luokkien mallin avulla.

Yleiset sudenkuopat

Vältä näitä yleisiä virheitä PHP-luokkien kanssa:

  • Kapseloi tila käyttämällä näkyvyysmääritteitä
  • Suosi konstruktorin parametriylennystä kompakteissa luokissa
  • Määrittele vakiot const-määritteellä kiinteitä arvoja varten
  • Käytä metodiketjutusta (sujuva rajapinta) luettavien ohjelmointirajapintojen luomiseen

Pikatarkistus

Mikä näkyvyysmäärite tekee ominaisuudesta käytettävän vain luokan sisällä?

Kertaus: PHP-luokat

Olet käynyt läpi PHP-luokat. Muista nämä keskeiset asiat:

  • Kapseloi tila käyttämällä näkyvyysmääritteitä
  • Suosi konstruktorin parametriylennystä kompakteissa luokissa
  • Määrittele vakiot const-määritteellä kiinteitä arvoja varten
  • Käytä metodiketjutusta (sujuva rajapinta) luettavien ohjelmointirajapintojen luomiseen
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 ”Luokat, ominaisuudet ja metodit” ilmainen?

Kyllä – oppitunnin ”Luokat, ominaisuudet ja metodit” 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 ”Luokat, ominaisuudet ja metodit”?

Määritelkää PHP-luokka ominaisuuksineen ja metodeineen. 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 ”Luokat, ominaisuudet ja metodit”-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. Luokat, ominaisuudet ja metodit
  2. Rakentajat ja tuhoajat
  3. Staattiset ominaisuudet ja metodit
  4. Taikametodien yleiskatsaus
← Takaisin: PHP Academy