Dokumentation

Klassen

Definition

Eine Klasse stellt den Bauplan von Objekten dar. Objekte werden daher auch als Klasseninstanz bezeichnet.

<?php # MyClass.php

class MyClass
{
    // Attribute und Methoden
}

Attribute

Jeder Klasse können beliebige Attribute hinzugefügt werden.

<?php # MyClass.php

class MyClass
{
    public int $myInteger;
    public string $myString = 'Zeichenkette';
}

Ist die Sichtbarkeit auf public gesetzt, können Client Code oder andere Objekte auf diese Attribute direkt zugreifen:

<?php # index.php

$class = new MyClass(); // Instanz erzeugen

$class->myInteger = 5; // Klassenattribut ändern
echo $class->myString; // Klassenattribut ausgeben

Dies ist nicht immer ratsam, da vielleicht die Attribute nach bestimmten Algorithmen gespeichert und ausgelesen werden sollen. Ein Beispiel:

Wir speichern eine natürliche Zahl nach folgendem Algorithmus: $ f(x) = -(x+1); x\in\mathbb{N}_U $ und $ f(x) = x; x\in 2\mathbb{N} $

<?php # MyClass.php

class MyClass
{
    private int $myInteger;

    public function setInteger(int $newInteger): void
    {
        if($newInteger >= 0) {
            if($newInteger % 2 == 0) {
                $this->myInteger = $newInteger;
                } else {
                    $this->myInteger = -($newInteger + 1);
            }
        }        
    }

    public function getInteger(): int
    {
        $integer = 0;
        if($this->myInteger < 0) {
                $integer = -($this->myInteger + 1);
            } else {
                $integer = $this->myInteger;
        }
        return $integer;
    }

}

Das obige Beispiel zeigt eine Klasse, die ganze Zahlen speichern kann. Ist eine Zahl gerade, wird sie normal im Attribut $myInteger abgelegt. Ist die Zahl jedoch ungerade, wird sie um eins erhöht und ihr Spiegelwert gespeichert. Dieser Algorithmus könnte umgangen werden, wenn das Attribut auf public gesetzt worden wäre.

Mitglied in