PHP Academy · Lektion

Klasser, egenskaber og metoder

Definér en PHP-klasse med egenskaber og metoder.

Lektion 1 af 413 trin

Klasser, egenskaber og metoder 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.

Introduktion: PHP-klasser

En klasse er en skabelon til oprettelse af objekter. Den definerer egenskaber (data) og metoder (adfærd). PHP's objektorienterede funktioner gør koden mere modulær, genanvendelig og vedligeholdelsesvenlig.

Grundlæggende begreber

De vigtigste begreber i PHP-klasser:

  • Brug class ClassName {} til at definere en klasse
  • Egenskaber gemmer data, og metoder definerer adfærd
  • Opret instanser med new ClassName()
  • Få adgang til medlemmer med pilen ->

Definition af en klasse

Eksempel:

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

Adgangsmodifikatorer

Fortsat:

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

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

Egenskaber med typer

Øvelse:

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

Instansmetoder

Et dybere kig:

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

Metodekædning

Avanceret brug:

<?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();

Klassens konstanter

Mønster fra virkeligheden:

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

Skrivebeskyttede egenskaber (PHP 8.1)

Bedste praksis:

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

Praktisk mønster

Saml det hele med et praktisk mønster til PHP-klasser.

Almindelige faldgruber

Undgå disse almindelige fejl med PHP-klasser:

  • Brug adgangsmodifikatorer til at indkapsle tilstand
  • Foretræk promovering af konstruktørparametre i kompakte klasser
  • Definér konstanter med const til faste værdier
  • Brug metodekædning (flydende grænseflade) til læsevenlige API'er

Hurtigt tjek

Hvilken adgangsmodifikator gør en egenskab tilgængelig kun inden for selve klassen?

Opsummering: PHP-klasser

Du har gennemgået PHP-klasser. Vigtige punkter at huske:

  • Brug adgangsmodifikatorer til at indkapsle tilstand
  • Foretræk promovering af konstruktørparametre i kompakte klasser
  • Definér konstanter med const til faste værdier
  • Brug metodekædning (flydende grænseflade) til læsevenlige API'er
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 “Klasser, egenskaber og metoder” gratis?

Ja — hele teksten til “Klasser, egenskaber og metoder” 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 “Klasser, egenskaber og metoder”?

Definér en PHP-klasse med egenskaber og metoder. 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 “Klasser, egenskaber og metoder”?

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. Klasser, egenskaber og metoder
  2. Konstruktører og destruktører
  3. Statiske egenskaber og metoder
  4. Introduktion til magiske metoder
← Tilbage til PHP Academy