Hola, primero os pongo los metodos, es un error MUY tonto pero no se como solucinar-lo xD
ProjectClass Código PHP:
function gestionTasksObj($opcion,$PREC,$objTask){
// Encuentra el que ha sido pulsado i dependiendo de la opcion; crea,modifica o elimina
$this->contador = 0;
for ($i=0;$i<count($this->tasks);$i++) {
if ($this->tasks[$i]->getArrayOfChilds()){
$this->contador =$this->tasks[$i]->gestionChildsObj( $opcion,$this->tasks[$i]->getArrayOfChilds(),$PREC,$this->contador,$objTask);}
}
return $this->contador;
}
TasksClass Código PHP:
function gestionChildsObj( $opcion,$childs,$PREC,$cont,$objTask){
for ($j = 0; $j < count($childs); $j++) {
$cont++;
echo "<br> recorrido: " .$childs[$j]->getName();
echo "<br> recorridoTHIS: " .$this->childs[$j]->getName();
if($cont == $PREC+1){
echo "<br>ddddddddddddddddd!".$this->childs[$j]->getName();
if($opcion=="crear"){
$this->addChild($objTask);
$childs[2] =$objTask;
}
}
if ($childs[$j]->getArrayOfChilds()) {
$cont=$this->gestionChildsObj($opcion,$this->childs[$j]->getArrayOfChilds(),$PREC,$cont,$objTask);
}
$cont++;
}
return $cont;
}
Cuando en ProjectClass hago -> $this->tasks[$j]->getArrayOfChilds() me funciona bien coge su array de hijos y puedo trabajar con él, pero haciéndo lo mismo en tasksClass COJE un copia de sus hijos y trabajo sobre ellos... no trabajo directamente sobre él sino sobre su copia.. .y estoy haciéndo exáctamente lo mismo!!
Los echo me muestran lo siguiente->
recorrido: diagrama de clases
recorridoTHIS: diagrama de clases -> hija de tasks
recorrido: hija de clases-> hija de hija de tasks
recorridoTHIS: diagrama de clases-> hija de tasks
recorrido: BD hijaclases-> etc
recorridoTHIS: diagramas destats-> hija de tasks
recorrido: obj clases
recorridoTHIS: obj clases -> hija de tasks
recorrido: diagramas destats
recorridoTHIS: diagramas destats-> hija de tasks
recorrido: Estudi
recorridoTHIS: diagrama de clases-> hija de tasks
recorrido: hija de clases
recorridoTHIS: diagrama de clases-> hija de tasks
recorrido: BD hijaclases
recorridoTHIS: diagramas destats-> hija de tasks
recorrido: casus d'us
recorridoTHIS: diagramas destats-> hija de tasks
prk hace todo esto? si le pongo this-> SIempre trabajará sobre el array de hijos de tasks y NO es así. Recursivamente le estoy diciendo que trabajo sobre su array de hijos,
Osea al paraserle this->childs->getarrayofchils (que es lo mismo que en el primer caso) deberia de acceder a esta (en el siguiente eslavon recursivo) haciéndo this->childs (que es lo que retorna el método) pero NO.. accedo al anterior, es como si en el array de hijos de ese hijo devolviera el array de su hijo pero no trabajo sobre él, trabajo desde el anterior(no paso su child) con una copia de los hijos