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;
}
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;
}
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