New question

Question:

 
  1  
 
Date: 11-05-2017 09:04:37 (In Spanish)

¿Cómo he de interpretar Obj->algo1()->algo2()?[Resolved]

Hola compañer@s,

Quería saber como debo interpretar cuando trabajo con un objeto php lo siguiente:

Obj->algo1()->algo2();

Ya lo he visto varias veces aunque yo siempre he trabajado solo con una parte

Obj->algo1();

Y luego por otro lado esta semana he visto en un código ageno un return sin nada tanto en js como en php o sea lo siguiente:

return;

Cuándo yo siempre he devuelto algo... o bien un dato o un boleano...


Gracias por adelantando
Tags: object oriented programming - OOP - PHP - Question Votes: 1 - Answers: 7 - Views: 21 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 11-05-2017 10:35:25 Hola Fran,
    En OOP se acostumbra que un metodo que funciona como procedimiento (No se espera que devuelva un valor) devuelva siempre una referencia a si mismo y de esta manera puedas realizar lo que se llama method chaining. Para metodos que se comportan como funciones (se espera que regresen un valor) esto no funcionaria*.

    En cada metodo tendrias al final:

    return $this;
    


    Eso te permitiria hacer lo siguiente:

    $a = new Order();
    $a->CreateOrder()
    ->sendOrderEmail()
    ->createShipment();
    


    En lugar de:

    $a = new Order();
    $a->CreateOrder();
    $a->sendOrderEmail();
    $a->createShipment();
    


    *A menos que devuelva un objeto y entonces puedes enlazar inmediatamente una llamada a un metodo
      Votes: 4 - Link answer
     
  •  
      0  
     
    Date: 17-05-2017 05:02:12 Hola Ernesto,

    muchísimas gracias por la información.
      Votes: 0 - Link answer
     
  • Date: 24-05-2017 02:54:40 Hola Fran, veo que Ernesto te ha explicado muy bien tu pregunta principal (el caso en el cual un método retorna un objeto y sobre ese retorno se vuelve a invocar otro método), restaría mencionar el caso del return, el cual esta más que explicado para PHP en la documentación oficial, transcribo:

    return devuelve el control del programa al módulo que lo invoca. La ejecución vuelve a la siguiente expresión después del módulo que lo invoca.

    Tomate unos minutos para leer toda la explicación aquí http://php.net/manual/es/function.return.php, es más que interesante y muchas veces programadores no tan junior no estan familiarizados con estos conceptos.

    Saludos a todos y buen código!

    PD: sin consideras que tu pregunta fue contestada no olvides cambiar el estado de la misma a resuelta :)
      Votes: 1 - Link answer
     
  •  
      0  
     
    Date: 24-05-2017 10:06:59 Hola Ernesto,

    se cual es la función de return, lo que no se es que hace si pones solo return sin devolver nada de nada;

    Normalmente devuelves un valor, pero si solo pones return; sin devolver nada es como no ponerlo no?
      Votes: 0 - Link answer
     
  • Date: 24-05-2017 14:42:23 Hola Fran, estimo que queres contestarme a mi, no? o a Ernesto? :)

    Vuelvo a mi comentario anterior, tomate unos minuto para leer el link que te estoy pasando, ahí se habla del return solo.

    Saludos
      Votes: 1 - Link answer
     
  •  
      0  
     
    Date: 25-05-2017 09:39:07 Perdona Fernando, si me refería a ti, no leí el link.

    Muchas gracias por la info :)
      Votes: 0 - Link answer
     
  • Date: 27-05-2017 05:14:58 Fran, Fernando habla del return sin más, en tus palabras "return sin devolver nada de nada".

    El return sin nada se suele usar en un subcódigo (ej: función, archivo incluido), para cortar la ejecución en curso y devolver la ejecución a quien invocó el subcódigo, pero mejor lee el link http://php.net/manual/es/function.return.php jajaja, saludos!
      Votes: 1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com