PHP: Array d’objectes dins una classe

Reading time: 2 – 4 minutes

Després d molts dies amb el mateix error i donant voltes sobre el
tema i sense una solució clara, avui he aconseguit q em funciones…

El problema estava en q quan feia una classe q tenia un atribut format per
un array d’objectes d’una altre classe no primitiva al no contemplar els tipus
d variables en PHP tenia problemes d’incompatibilitat de tipus i coses
així.

A continuació adjunto un exemple molt simple on es veu com funciona el
tema.Si algú té alguna idea per millorar la fomra de guardar un
array d’objectes com a atribut dins una classe agraïria q m’ho fes saber.
Aquesta idea és molt útil a l’hora de fer catàlegs de
productes o families d’objectes geràrquiques.

Hi ha poca gent q usi la P.O.O. amb PHP, ja q no soporta moltes de les
funcionalitats de la mateixa però per projectes una mica grans és
útil posar-s’hi sino es fa difícil reaprofitar codi en moltes
ocasions.

L’exemple esta format per 3 fitxers:
Clase1.php3 : és una classe molt simple, amb només dos
atributs.
Clase2.php3 : és la classe q té com a atribut un array
d’objectes d la classe anterior.
test.php3 : fitxer d prova, crea un objecte d la Clase2 i afegeix
elements a l’atribut array de la Clase1.

Codi de la Clase1.php3:

class Clase1 {

var $dada1;
var $dada2;

function Clase1($pdada1=””,$pdada2=””) {
$this->dada1=$pdada1;
$this->dada2=$pdada2;
}

function setDada($pdada1=””,$pdada2=””) {
$this->dada1=$pdada1;
$this->dada2=$pdada2;
}

function getDada1() {
return $this->dada1;
}

function getDada2() {
return $this->dada2;
}

}

Codi de la Clase2.php3:

class Clase2 {

var $dato;
var $vector;

function Clase2() {
}

function setDato($pdato) {
$this->dato=$pdato;
}

function addVector($dada1,$dada2) {
$this->vector[“$dada1”] = new Clase1($dada1,$dada2);
}

function getVector($dada1) {
$a=$this->vector[“$dada1”];
return $a->getDada1();
}
}

Codi de la test.php3:

include(“Clase1.php3”);
include(“Clase2.php3”);

$test2 = new Clase2;

$test2->Clase2();
$test2->addVector(“test”,”testejant”);
$test2->addVector(“test2″,”testejant2”);
$test2->addVector(“test3″,”testejant3”);
$test2->addVector(“test4″,”testejant4”);

echo $test2->getVector(“test”);
echo “
n”;
echo $test2->getVector(“test2”);
echo “
n”;
echo $test2->getVector(“test3”);
echo “
n”;
echo $test2->getVector(“test4”);

1 thought on “PHP: Array d’objectes dins una classe”

Comments are closed.

Últimas entradas

Archivo
Scroll to Top