Foros del Web » Programando para Internet » PHP »

Arboles PHP

Estas en el tema de Arboles PHP en el foro de PHP en Foros del Web. 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 , ...
  #1 (permalink)  
Antiguo 18/06/2011, 11:53
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 5 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
  #2 (permalink)  
Antiguo 18/06/2011, 15:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Arboles PHP

En PHP todos los objetos son pasados como referencias, para poder trabajar con una copia de algun objeto debes usar clone.

Te invito a investigar en el manual OOP de PHP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/06/2011, 15:56
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Arboles PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
En PHP todos los objetos son pasados como referencias, para poder trabajar con una copia de algun objeto debes usar clone.

Te invito a investigar en el manual OOP de PHP.
Vale sino se clonan a qué es debido? prk me hace eso? creo que ni te has mirado lo que he posteado
  #4 (permalink)  
Antiguo 18/06/2011, 16:19
 
Fecha de Ingreso: junio-2010
Mensajes: 353
Antigüedad: 14 años, 5 meses
Puntos: 6
Respuesta: Arboles PHP

cada vez me pasan cosas más expedientes x..

Antes no sabia prk me sucedia eso y ahora consigo meter-lo , creando un metodo "addChilds($task) " con this->childs[] = $tasks; y al dibujar la tabla me dice que no es un obj encambio al insertar hago sus debidas comprobaciones y sí que puede acceder a qualquier método de este obj que esta dentro de la array.........

A ver si alguién es capaz de decirme cual es el error de lo primero que posteé así puedo guiarme por algo lógico, por mucho que mire y lea manuales no le veo sentido a esto y tampoco esq sea muy dificil alguna cosa que no sé ver se me esta pasando por alto

Etiquetas: arboles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:27.