Tema: Arboles PHP
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2011, 11:53
marcwolf
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 13 años, 10 meses
Puntos: 6
Arboles PHP

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

Última edición por marcwolf; 18/06/2011 a las 12:05