Objekt/Klasseninstanzen in der Parameterliste

BoT

Mitglied
Hallo,

ich habe ein kleines Buch über PHP.
Da steht drin, dass man aus einem deklarierten Objekt eine Instanz erzeugt, indem man z.B. schreibt:

Code:
$obj = new klasse();


Gut, wenn man das so initialisiert ist das ja ganz einfach.

Aber wie sieht es mit der Übergabe an Funktionen aus? In meinem Buch steht nichts darüber. Muss ich das mit dem "new" beachten, oder einfach nur z.B. $obj schreiben?
Ich wäre euch für eine Antwort sehr dankbar.

BoT
 
Tach,

also erstmal:
Du erzeugst deine Instanz nicht aus einem Objekt sondern auf ner Klasse. Die Klasse ist ne Art Bauplan für Objekte.
PHP:
class Hund
{
   var $name;
   var $owner;

   function Hund() //Kunsturuktor (wird bei 'new' aufgerufen)
   {
       $this->name = "Bello";
   }

   function change_name($new_name)
   {
       $this->name = $new_name;
   }
}
Aus dieser Klasse kannst du beliebig viele Instanzen machen, die Namen bekommen so wie normale Variablen
PHP:
$a = new Hund();
$a->change_name("Bodo");
$b = new Hund();

//$a->name == Bodo
//$b->name == Bello

$a = new Hund(); //neuzuweisung

//$a->name == Bello
//$b->name == Bello
wenn du deinen Hund an eine Funktion übergibst musst du einfach die Objektvariable übergeben
PHP:
function foo ($dog)
{
   echo $dog->name;
}

$c = new Hund();
foo($c);
//gibt aus: "Bello";

$c->name = "TestKöter";
foo($c);
//gibt aus: "TestKöter";

Das sollte alles klären
Mag etwas konfus und sinnlos wirken, aber bei grösseren Projekten is nen gescheites Klassenmodell die halbe Miete

Gruß
TiM
 
Zurück