Php Klassen erstellen und einbinden, Variablenarten

Eine php-Klasse hat einige Variablen und Funktionen, die dann für die Instanz der Klasse (= das Objekt) zur Verfügung stehen.

Um richtig sauber zu programmieren, legt man für jede Klassendefinition eine eigene Datei an und nutzt diese Datei dann in der Haupt-Datei so:

include_once 'Person.php';
include_once 'Lehrer.php'; 

Es gibt Eltern- und Kindklassen, das macht man beim definieren so:

Elternklassen werden einfach definiert:

<?php
class Person {
}
?>

Dabei kann, wenn die Klasse nur ein „Denkkonstrukt“ ist, von dem nie selber ein eigenständiges Objekt aufgerufen wird, die Klasse spezifiziert werden als abstract class Person.

Kindklassen erweitern dann die Elternklasse.

 class Lehrer extends Person

Das macht Sinn, wenn es einige Funktionen/Variablen gibt, die für alle gelten (Personen haben ein Geschlecht), aber andere, die nur für Untergruppen gelten (Nur Schüler haben einen Vornamen.)

Zu Beginn der Klasse legt man public, protected und private Variablen fest, die in dieser Klasse zur Verfügung stehen. (Globale Variablen sind böse.) Wenn nichts vor einer Variable steht, ist sie public.

  • Public bedeutet: Mit $objektname -> variablenname kann immer auf die Variable zugegriffen werden, egal wo im Code ich mich gerade befinde (Das mit dem -> variablenname ohne $ heißt magic getter)
  • Protected bedeutet: Nur vererbte Klassen können (z.B. mittels magic getter oder durch Nutzung in Funktionen) auf die Variable zugreifen, außerhalb der Klassendefinition geht es nicht – will man von dort den Wert der Variable wissen, muss man eine passende Funktion haben.
  • Private bedeutet: Nur die Klasse, in der es defniert wurde, kann darauf zugreifen.

Es gibt noch Konstanten (const) – das sind fest definierte Variablen, die nicht geändert werden. Und es gibt noch statische Variablen, aber ich finde, es reicht jetzt an Variablen.

Kommentar verfassen