Nueva pregunta

Pregunta:

 
  1  
 
Fecha: 11-05-2017 09:04:37 (En Español)

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

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
Etiquetas: PHP - POO - Pregunta - Programación Orientada a Objetos Votos: 1 - Respuestas: 7 - Vistas: 21 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 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
      Votos: 4 - Link respuesta
     
  •  
      0  
     
    Fecha: 17-05-2017 05:02:12 Hola Ernesto,

    muchísimas gracias por la información.
      Votos: 0 - Link respuesta
     
  • Fecha: 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 :)
      Votos: 1 - Link respuesta
     
  •  
      0  
     
    Fecha: 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?
      Votos: 0 - Link respuesta
     
  • Fecha: 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
      Votos: 1 - Link respuesta
     
  •  
      0  
     
    Fecha: 25-05-2017 09:39:07 Perdona Fernando, si me refería a ti, no leí el link.

    Muchas gracias por la info :)
      Votos: 0 - Link respuesta
     
  • Fecha: 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!
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com