Geschrieben von phattek am 09.01.2005, 13:26

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&uuml;ller", "Hagen Feldmann", "Peter Seifert", "Daniela Lange", "Franziska Schubert", "Luise Weinert");
$klasse10->klassenlehrer = "Herr Gr&uuml;n";

# oder die Funktion dafür nutzen
$klasse11->neuer_schueler("Max Gr&uuml;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&uuml;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&uuml;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.

Bewertung Anzahl
6
33,3 %
1 Bewertungen
5
33,3 %
1 Bewertungen
4
33,3 %
1 Bewertungen