<?
/**
wir erstellen unsere klasse Auto also das eigentliche objekt ;)
wir wissen das es eine farbe und eine ps anzahl hatt
da wir die autos aber nicht ändern wollen können wir die setter mal weglassen und stattdessen nen default konstruktion bauen
dieser hatt den vorteil das wir praktisch immer mit 0 initialisierte objekte haben und keine die NULL sind! :)
also dann mal los
**/
class Auto{
var $farbe;
var $ps;
// das ist der Default der wird immer aufgerufen wenn ein objekt erstellt wird
// entweder man übergibt ein argument dann bekommt das objekt den wert oder wenn mans
// auslässt bleibs einfach auf dem default stehen
function Auto($farbe="#000000",$ps=0){
$this -> farbe = $farbe;
$this -> ps = $ps;
}
function getFarbe(){
return $this -> farbe;
}
function getPs(){
return $this-> ps;
}
}
$meinAuto = new Auto("#ff0000",100);
echo "mein auto ist <span style=\"background-color:".$meinAuto -> getFarbe()." ;width:20px\"></span>";
echo "<br>";
echo "und es hatt ". $meinAuto -> getPs() . "ps";
echo "<hr>";
/*
wollen wir aber gannnzzz viele autos dann definieren wir uns einfach ein array
*/
$autos = array();
/* da wir ja unterschiedliche haben wollen mach ich nun einfach mal ne for schleife und paar farben*/
$colors = array("#00FF00","#aa99aa","#0000FF","#FFFF00","#FF00FF","#00FFFF","#ACDCBC","#123456","#dedede","#ededed");
for($i=1;$i<10;$i++){
$autos[] = new Auto($colors[$i-1],$i*30);
}
/* so nun haben wir ganz viele autos in nem array und geben sie nun aus ... :) */
foreach($autos as $value){
echo "mein auto ist <span style=\"background-color:".$value -> getFarbe()." ;width:20px\"></span>";
echo "<br>";
echo "und es hatt ". $value -> getPs() . "ps";
echo "<hr>";
}
/*
und wenn man nun nicht versteht wieso der ganze heckmeck
dann erstellen wir uns einfach noch ne klasse Person
diese person hatt nen namen + ein auto :)
*/
class Person{
var $name;
var $auto;
/*
leider kann man in php keine objekte neu in methoden referenzieren deswegen gibst
hier leider kein neues auto objekt :(
sonst würde man schreiben
function Person($name="",$auto=new Auto()){
$this -> name = $name;
$this -> auto = $auto;
}
*/
function Person($name="",$auto){
$this -> name = $name;
$this -> auto = $auto;
}
function getAuto(){
return $this -> auto;
}
function getName(){
return $this -> name;
}
}
/*
soweit alles klar? ok
nun wollen wir eine person die ein auto hatt :) und das ist dann natürlich total einfach! :)
*/
$franz = new Person("Franz",new Auto("#AEAEAE",460));
/*
was haben wir nun genau gemacht?
wir haben nun ein auto erstellt und das auto gehört unserem franz
wenn wir nun alles ausgeben können wir natürlich die funktionen von der klasse auto ebenfalls aufrufen
also machen wir mal das
*/
echo "<hr> FRANZ <hr>";
echo "name:". $franz -> getName();
echo "<br>";
$auto = $franz -> getAuto();
echo "mein auto ist <span style=\"background-color:".$auto -> getFarbe()." ;width:20px\"></span>";
echo "<br>";
echo "und es hatt ". $auto -> getPs() . "ps";
echo "<hr>";
/*
verstanden oder ist etwas unklar=?
source wurde getestet und funktioniert
obj hatt halt den vorteil das man seine programmteile ordentlich trennen kann und nach lust und laune erweitern könnte
ohne sich nun sorgen darum zu machen das irrgend was nicht funktioniert
ausserdem ist es übersichtlicher und zudem leichter für jederman zu benutzen
*/
?>