Pregunta:
Fecha: 11-05-2017 09:04:37
(En Español)
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 Votos: 1 - Respuestas: 7 - Vistas: 21 Compartir en: Google Facebook Twitter LinkedIn Link
¿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 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 -
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 -
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 -
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