Hallo liebe SelfHTML Community,
ich versuche gerade mich in die OOP von php einzuarbeiten. Ich bin kein Profi, doch ab und an überkommt mich einfach die Lust mir das ein oder andere kleine Tool für mich zu basteln.
Ich versorge euch erstmal mit dem Quellcode.
<?php
class myCollection{
public function createCollection($collection){
foreach($collection as $key => $value){
$this->object[$key] = $value;
}
}
public function getObject($objectNumber = NULL){
if(!$objectNumber == NULL){
return $this->object[$objectNumber];
}
else{
return $this->object;
}
}
}
class myAnimal{
public function setGender($var){
$this->Gender = $var;
}
public function getGender(){
return $this->Gender;
}
}
$x = new myCollection;
$x->createCollection(array(1,2,3,4,5,6,7,8));
foreach($x->getObject() as $k){
${$k} = new myAnimal;
}
${$x->getObject(2)}->setGender('männlich');
echo ${$x->getObject(2)}->getGender();
Zu Erklärung.
Die Größe des Arraya um mir eine Collection zu erzeugen ist variabel. Nun möchte ich mir zu der Collection die einzelnen Objekte erzeugen.
Ich wollte die Objekte eigentlich gleich in der Klasse myCollection erzeugen. Habe dann aber anschließend im Script keinen Zugriff auf das Objekt, da es scheinbar nicht vorhanden ist.
Kann mir einer verraten wo ich den Denkfehler habe?
So wie es jetzt oben zu sehen sieht der Quellcode aus und fnuktioniert auch.
Ich wollte es eigentlich soo machen. Funktioniert aber nicht.
<?php
class myCollection{
public function createCollection($collection){
foreach($collection as $key => $value){
$this->object[$key] = $value;
}
self::createObjects();
}
private function createObjects(){
foreach(self::getObject() as $key){
${$key} = new myAnimal;
}
}
public function getObject($objectNumber = NULL){
if(!$objectNumber == NULL){
return $this->object[$objectNumber];
}
else{
return $this->object;
}
}
}
...
Vielleicht kann mir da jemand von euch helfen?
Danke
MfG
Oliver