Código PHP:
class Wawa {
public function __construct (){
$id = uniqid('wawa');
return $id;
}
}
echo new Wawa();
| |||
return en contructor holas quisiera saber si puedo hacer un return en un contructor por ejemplo Código PHP: |
| |||
Respuesta: return en contructor gracias GatorV creo que no se pueden hacer constructores estaticos :P |
| ||||
Respuesta: return en contructor bueno yo habia caido en este mismo dilema hace uno tiempo atras y descubri q no funciona el return en un constructor el problema q yo tenia era sin importar si existia mysqli o mysql al hacer $conexion=new DB(); me devolviese un objeto mysqli o un objeto mysql con las mismas propiedades q mysqli que cree yo pero no funciono en este caso puntual lo termine resolviendo con singleton quedanto $conexion=DB::singleton(); pero bueno otro ejemplo podria ser el gestor de imagenes $imagen=new Imagen()// y devuelva o un GB o un ImagenMagik pero no funciona :( a darle con los estaticos :) |
| ||||
Respuesta: return en contructor Me parece que en lo que se pierden es que al hacer un "new" estás creando una instancia de una clase, por consiguiente obtienes "el retorno de un objeto"... cómo vas a hacer que el resultado de un new sea el retorno de otra cosa? Nuevamente, el problema es conceptual y no de lenguaje. Si quieres crear "otra cosa", crea un método que te devuelve "otra cosa", una instancia o un valor "x". Pero nada tiene que ver lo que quieren hacer con un constructor de una clase. |
| |||
Respuesta: return en contructor si ya me he dado cuenta de que estaba mal mi razonamiento yo necesitaba que me regresara un id una clase y pues puse una varaible que tenga el valor y despues creo una instancia de mi clase y de hay acceso a la variable y listo :P Código PHP: |
| ||||
Respuesta: return en contructor Cita: Lo que está mal es que quieras pilotear un helicóptero sin haber siquiera leído un manual de vuelo (como mínimo), con solo el manual de piezas y reparación no vas a llegar muy lejos.Nota: no uses en objetos el término "variables", lo que estás usando son "atributos del objeto". Tu ejemplo tiene errores, no puedes usar atributos públicos (están prohibidos) y el código no sigue el estándar de PHP. Código PHP: |
| ||||
Respuesta: return en contructor Cita: Desde el punto de vista de la POO y conceptualmente hablando, es un disparate esperar que haga eso.El "new" devuelve un objeto a partir de una clase. Luego, puedes pedirle cosas al objeto, y usarás un "return" dentro de uno de sus métodos. No tiene ningún sentido hacer un "new" y esperar que devuelva otra cosa que no sea un objeto. Por favor, lean sobre conceptos, jugar con la sintaxis de un lenguaje no los lleva a ningún lado. |
| |||
Respuesta: return en contructor jugar con el lenguaje es bueno asi aprendes xD eso es lo que creo y si tienes razon con lo de "variables" sigo acostumbrado a eso tratare de no equivocarme más pero pues en la pag que pones de estandar de php mira lo que dice "variable"xD gracias por las correcciones :) |
| ||||
Respuesta: return en contructor ¿Qué aprendes? Jugar con ladrillos no te asegura que puedas construir un edificio. Debes capacitarte en los temas para luego "jugar" con conocimientos base. Parafraseando una conocida frase: "Mil monos golpeando un teclado durante mil años no lograrán construir una clase en POO" Cita: Sí, lo comenté alguna vez, veo que son varias personas que lo escriben y cometen algunos errores como el que describes. De todas formas este link apunta al documento más completo, pero sigue siendo aún un borrador.
Iniciado por libso y si tienes razon con lo de "variables" sigo acostumbrado a eso tratare de no equivocarme más pero pues en la pag que pones de estandar de php mira lo que dice "variable"xD Cita: De nada, a las órdenes. gracias por las correcciones :) |
| ||||
Respuesta: return en contructor ¿Sigo diciendo, si lo que quieren es obtener un valor, porque no usan una función estatica? Código PHP: |
| |||
Respuesta: return en contructor espero no contestar muy tarde, lo que tu quieres hacer se va poder hacer proximammente en versiones de php y se llama Functors, basicamente son una construcción del lenguaje que nos permite usar objetos como si fueran funciones. Código PHP: |
| ||||
Respuesta: return en contructor Gracias Insane, invaluable tu aporte, pero vuelvo a repetir lo que ustedes ya se deben imaginar que diré... eso es terrible chanchada! PD: por qué no usarán los objetos para lo que fueron creados, digo yo. |
| ||||
Respuesta: return en contructor Mmm haz probado que al usar invoke llame al constructor?, según lo que veo en la documentación __invoke lo que hace es ejecutar directamente cuando se llama sin pasar por el constructor... |