PHP ist keine objektorientierte Sprache. Es ist aber auch unter PHP möglich objektorientiert zu programmieren.
Man sollte dafür allerdings eine möglicht neue PHP-Version benutzen (mind. PHP 4).
Vorteile von Objekten sind z.B.:
- Innerhalb von Objekten können Funktionen und Variablen unabhänig von anderen außerhalb benannt werden.
- Werte und Funktionen sind an einem Platz
In meinem Beispiel werde ich Klassen und Objekte mit Hilfe von Schulklassen erklären.
Es gibt aber sicherlich bessere anwendungsmöglichkeiten.
<?php
# Als erstes wird die Klasse Schulklasse definiert:
class schulklasse {
var $schueler = array();
var $klassensprecher = "";
var $klassenlehrer = "";
# mit dieser Funktion kann der Schulklasse ein
# Schüler hinzugefügt werden:
function neuer_schueler($name) {
$this->schueler[] = $name;
}
# mit dieser Funktion kann per Zufall ein Schüler
# ausgewählt werden:
function schueler_waehlen() {
srand((double)microtime()*1000000);
$schueler = $this->schueler[rand(0,count($this->schueler)-1)];
return $schueler;
}
}
# Jetzt werden zwei Objekte ($klasse10, ...) aus der Klasse "schulklasse" erzeugt.
$klasse10 = new schulklasse;
$klasse11 = new schulklasse;
# Man kann direkt auf Variablen zugreifen
$klasse10->schueler = array("Thomas Müller", "Hagen Feldmann", "Peter Seifert", "Daniela Lange", "Franziska Schubert", "Luise Weinert");
$klasse10->klassenlehrer = "Herr Grün";
# oder die Funktion dafür nutzen
$klasse11->neuer_schueler("Max Grünbeck");
$klasse11->neuer_schueler("Eva Thiele");
$klasse11->neuer_schueler("Jakob Schmith");
$klasse11->neuer_schueler("Martin Greller");
$klasse11->neuer_schueler("Maria Pocher");
$klasse11->neuer_schueler("Doreen Mowitz");
$klasse11->klassenlehrer = "Frau Rot";
# Jetzt soll ein Klassensprecher gewählt werden.
# Dafür wird per Zufall mit der schueler_waehlen()-Funktion ein Schüler ausgewählt
$klasse10->klassensprecher = $klasse10->schueler_waehlen();
$klasse11->klassensprecher = $klasse11->schueler_waehlen();
# Jetzt wird alles ausgegeben werden...
echo "<h2>Klasse 10</h2>";
echo "<ul>";
echo "<b>Schüler:</b>";
foreach ($klasse10->schueler as $schueler) {
echo "<li>".$schueler."</li>";
}
echo "<b>Klassenlehrer:</b> ".$klasse10->klassenlehrer;
echo "<br>";
echo "<b>Klassensprecher:</b> ".$klasse10->klassensprecher;
echo "</ul>";
echo "<h2>Klasse 11</h2>";
echo "<ul>";
echo "<b>Schüler:</b>";
foreach ($klasse11->schueler as $schueler) {
echo "<li>".$schueler."</li>";
}
echo "<b>Klassenlehrer:</b> ".$klasse11->klassenlehrer;
echo "<br>";
echo "<b>Klassensprecher:</b> ".$klasse11->klassensprecher;
echo "</ul>";
?>
Man kann auf Funktionen und Variablen in Objekten immer so zugreifen:
$Objekt->Variable1
$Objekt->Funktion1
Dabei ist zu beachten, dass vor den Variablenname nicht noch ein $ kommt.
Das ist natürlich noch nicht alles, was man mit Klassen machen kann. Aber für's Erste sollte es erst mal reichen.