Question:
Date: 11-05-2017 09:04:37
(In Spanish)
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 Votes: 1 - Answers: 7 - Views: 21 Share on: Google Facebook Twitter LinkedIn Link
¿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 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 -
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 -
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 -
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