Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/05/2014, 18:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 10 meses
Puntos: 320
Respuesta: PHP hardcodea __construct() y clone() .. por que ?

Tanto el constructor, como el destructor y clone, no retornan nada (void):
http://www.php.net/manual/es/language.oop5.decon.php
http://www.php.net/manual/es/languag...p#object.clone
new y clone son construcciones del lenguaje y los metodos respectivos no son mas que unos callbacks posteriores a la creacion/clonacion del objeto, php ya sabe lo que va a retornar antes de ejecutar el metodo, la prueba esta en que la variable $this esta disponible, y esta no es modificable en ningun momento, hacerlo produce un error fatal y bla bla bla.

__construct, __destruct y __clone no son como los metodos magicos (http://www.php.net/manual/es/language.oop5.magic.php) si bien el contenido de return es evaluado, la respuesta es void.

No obstante, puedes hacer esto como una alternativa para lograr un efecto similar:
Código PHP:
Ver original
  1. $foo = (new Foo)->getInstance();
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios