FAQ
Hola a tod@s,

es posible en una clase definida en PHP, definir varios métodos
constructores?. Algo así como en Java, que puedes definir una clase
mostrar.class, y dentro de ella varias funciones con el mismo nombre de
la clase.

Es posible?

Gracias por adelantado por vuestras respuestas.

Saludos,

José Luis Herranz Martín


___________________________________________________________________
Consigue tu e-mail gratuito TERRA.ES
Haz clic en http://www.terra.es/correo/

Search Discussions

  • Andymix at Oct 22, 2001 at 2:25 pm
    Creo que no, pero puedes llamar a un metodo u otro segun el numero de
    argumentos o el valor que tomen.

    Salu2
    Andy
    ----- Original Message -----
    From: "JLUIS.HERRANZ" <JLUIS.HERRANZ@terra.es>
    To: <lista@phpes.com>
    Sent: Monday, October 22, 2001 3:54 PM
    Subject: [PHP-ES] Varios constructores en una clase


    Hola a tod@s,

    es posible en una clase definida en PHP, definir varios métodos
    constructores?. Algo así como en Java, que puedes definir una clase
    mostrar.class, y dentro de ella varias funciones con el mismo nombre de
    la clase.

    Es posible?

    Gracias por adelantado por vuestras respuestas.

    Saludos,

    José Luis Herranz Martín


    ___________________________________________________________________
    Consigue tu e-mail gratuito TERRA.ES
    Haz clic en http://www.terra.es/correo/



    ----------------------------------------------------------------------------
    ----

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Iván Toda Caraballo at Oct 22, 2001 at 2:35 pm
    Si que se puede, puedes hacerlo igual que en Java, por ejemplo:

    class ClasePrueba {
    function ClasePrueba ($var1))
    {
    // Lo que sea
    }
    }


    // Y puedes invocar

    $varConstructor1 = new ClasePrueba;

    // O con el otro constructor

    $varConstructor2 = new ClasePrueba ($valor);



    Un saludo





    -----Mensaje original-----
    De: JLUIS.HERRANZ
    Enviado el: lunes, 22 de octubre de 2001 15:55
    Para: lista@phpes.com
    Asunto: [PHP-ES] Varios constructores en una clase


    Hola a tod@s,

    es posible en una clase definida en PHP, definir varios métodos
    constructores?. Algo así como en Java, que puedes definir una clase
    mostrar.class, y dentro de ella varias funciones con el mismo nombre de
    la clase.

    Es posible?

    Gracias por adelantado por vuestras respuestas.

    Saludos,

    José Luis Herranz Martín


    ___________________________________________________________________
    Consigue tu e-mail gratuito TERRA.ES
    Haz clic en http://www.terra.es/correo/
  • Fredy Gonzales Purihuaman at Oct 22, 2001 at 4:07 pm
    Si es factivble.!!
    -----Original Message-----
    From: andymix@terra.es [SMTP:andymix@terra.es]
    Sent: lunes 22 de octubre de 2001 9:24
    To: lista@phpes.com; jluis.herranz@terra.es
    Subject: Re: [PHP-ES] Varios constructores en una clase

    Creo que no, pero puedes llamar a un metodo u otro segun el numero de
    argumentos o el valor que tomen.

    Salu2
    Andy
    ----- Original Message -----
    From: "JLUIS.HERRANZ" <JLUIS.HERRANZ@terra.es>
    To: <lista@phpes.com>
    Sent: Monday, October 22, 2001 3:54 PM
    Subject: [PHP-ES] Varios constructores en una clase


    Hola a tod@s,

    es posible en una clase definida en PHP, definir varios métodos
    constructores?. Algo así como en Java, que puedes definir una clase
    mostrar.class, y dentro de ella varias funciones con el mismo nombre de
    la clase.

    Es posible?

    Gracias por adelantado por vuestras respuestas.

    Saludos,

    José Luis Herranz Martín


    ___________________________________________________________________
    Consigue tu e-mail gratuito TERRA.ES
    Haz clic en http://www.terra.es/correo/



    --------------------------------------------------------------------------
    --
    ----

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Andymix at Oct 23, 2001 at 7:24 am
    Como metodo, o constructor, solo puedes tener uno, ya que la oop de php no
    admite sobrecarga. Pero si se puede llamar al metodo con un numero
    indistinto de parametros.

    Si tienes

    class Clase {
    function Clase() {
    $numero_de_argumentos = func_num_args();
    $array_de_argumentos = func_get_args();
    if ($numero_de argumentos) {
    ...
    }
    }
    }
    Puedes hacer:

    $c = new Clase() ó new Clase("hola",3) ...

    Tambien puedes declarar


    class Clase {
    function Clase($v,$c) {
    ...
    }
    }
    Y llamar Clase() o Clase(3) o Clase(2,"hola")

    Creo que es asi , de todas formas asi funciona.

    Salu2
    Andy

    ----- Original Message -----
    From: "Fredy Gonzales Purihuaman" <fgonzales@gcg.com.pe>
    To: <lista@phpes.com>
    Sent: Monday, October 22, 2001 4:45 PM
    Subject: RE: [PHP-ES] Varios constructores en una clase


    Si es factivble.!!
    -----Original Message-----
    From: andymix@terra.es [SMTP:andymix@terra.es]
    Sent: lunes 22 de octubre de 2001 9:24
    To: lista@phpes.com; jluis.herranz@terra.es
    Subject: Re: [PHP-ES] Varios constructores en una clase

    Creo que no, pero puedes llamar a un metodo u otro segun el numero de
    argumentos o el valor que tomen.

    Salu2
    Andy
    ----- Original Message -----
    From: "JLUIS.HERRANZ" <JLUIS.HERRANZ@terra.es>
    To: <lista@phpes.com>
    Sent: Monday, October 22, 2001 3:54 PM
    Subject: [PHP-ES] Varios constructores en una clase


    Hola a tod@s,

    es posible en una clase definida en PHP, definir varios métodos
    constructores?. Algo así como en Java, que puedes definir una clase
    mostrar.class, y dentro de ella varias funciones con el mismo nombre de
    la clase.

    Es posible?

    Gracias por adelantado por vuestras respuestas.

    Saludos,

    José Luis Herranz Martín


    ___________________________________________________________________
    Consigue tu e-mail gratuito TERRA.ES
    Haz clic en http://www.terra.es/correo/



    --------------------------------------------------------------------------
    --
    ----

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Enrique Gonzalvo at Oct 23, 2001 at 11:44 am
    Hello andymix,

    Tuesday, October 23, 2001, 8:23:28 AM, you wrote:

    ate> Como metodo, o constructor, solo puedes tener uno, ya que la oop de php no
    ate> admite sobrecarga. Pero si se puede llamar al metodo con un numero
    ate> indistinto de parametros.

    ate> Si tienes

    ate> class Clase {
    ate> function Clase() {
    ate> $numero_de_argumentos = func_num_args();
    ate> $array_de_argumentos = func_get_args();
    ate> if ($numero_de argumentos) {
    ate> ...
    ate> }
    ate> }
    ate> }
    ate> Puedes hacer:

    ate> $c = new Clase() ó new Clase("hola",3) ...

    ate> Tambien puedes declarar


    ate> class Clase {
    ate> function Clase($v,$c) {
    ate> ...
    ate> }
    ate> }
    ate> Y llamar Clase() o Clase(3) o Clase(2,"hola")

    ate> Creo que es asi , de todas formas asi funciona.

    ate> Salu2
    ate> Andy

    ate> ----- Original Message -----
    ate> From: "Fredy Gonzales Purihuaman" <fgonzales@gcg.com.pe>
    ate> To: <lista@phpes.com>
    ate> Sent: Monday, October 22, 2001 4:45 PM
    ate> Subject: RE: [PHP-ES] Varios constructores en una clase


    ate> Si es factivble.!!
    -----Original Message-----
    From: andymix@terra.es [SMTP:andymix@terra.es]
    Sent: lunes 22 de octubre de 2001 9:24
    To: lista@phpes.com; jluis.herranz@terra.es
    Subject: Re: [PHP-ES] Varios constructores en una clase

    Creo que no, pero puedes llamar a un metodo u otro segun el numero de
    argumentos o el valor que tomen.

    Salu2
    Andy
    ----- Original Message -----
    From: "JLUIS.HERRANZ" <JLUIS.HERRANZ@terra.es>
    To: <lista@phpes.com>
    Sent: Monday, October 22, 2001 3:54 PM
    Subject: [PHP-ES] Varios constructores en una clase


    Hola a tod@s,

    es posible en una clase definida en PHP, definir varios métodos
    constructores?. Algo así como en Java, que puedes definir una clase
    mostrar.class, y dentro de ella varias funciones con el mismo nombre de
    la clase.

    Es posible?

    Gracias por adelantado por vuestras respuestas.

    Saludos,

    José Luis Herranz Martín


    ___________________________________________________________________
    Consigue tu e-mail gratuito TERRA.ES
    Haz clic en http://www.terra.es/correo/



    --------------------------------------------------------------------------
    --
    ----

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
    ate> ---------------------------------------------------------------------
    ate> Archivo On-line: http://www.phpes.com/
    ate> Manual PHP en español: http://www.php.net/manual/es/
    ate> Para dar de baja la suscripción, mande un mensaje a:
    ate> lista-unsubscribe@phpes.com



    ate> ---------------------------------------------------------------------
    ate> Archivo On-line: http://www.phpes.com/
    ate> Manual PHP en español: http://www.php.net/manual/es/
    ate> Para dar de baja la suscripción, mande un mensaje a:
    ate> lista-unsubscribe@phpes.com

    Creo recordar que php4 si admite sobrecarga. Php3 no.

    --
    Best regards,
    Enrique mailto:kike@bytenet.es
  • Andrés Ferrando at Oct 23, 2001 at 5:32 pm

    ate> Como metodo, o constructor, solo puedes tener uno, ya que la oop de php no
    ate> admite sobrecarga. Pero si se puede llamar al metodo con un numero
    ate> indistinto de parametros.


    Creo recordar que php4 si admite sobrecarga. Php3 no.
    En el manual no encontre nada especifico ... lo que si dice es que puede
    llamar al constructor de la clase padre si esa no tiene constructor ...
    Estuve probando, y no se puede:

    Si creas 2 constructores, estos no pueden diferenciarse por el tipo de
    variable, ya que en la definicion de la funcion solo indicas los nombres
    de las variables y no el tipo. Si los diferencias por la cantidad de
    variables, lo que estarias haciendo se haria poniendo valores para las
    variables que no se asignan, del tipo function ($a, $b = 0)
    Si definis 2 metodos (en este caso constructores), solo toma en cuenta
    el segundo, lo que termina de confirmar que la manera correcta es la que
    decia andymix.

    Proba hacer esto:

    class auto {
    function auto ($a) {
    echo "funcion A";
    }
    function auto ($a, $b) {
    echo "funcion B";
    }
    }
    $c = auto(1,2);
    $d = auto(1);

    Va a dar:
    funcion B
    Warning falta argumento 2
    funcion B


    --
    Andrés Ferrando <pruna@sinectis.com.ar>
  • JoseLuis Herranz at Oct 23, 2001 at 6:05 pm
    Efectivamente,

    lo he estado probando con otras funciones y no hay posibilidad, se queda
    siempre con el segundo. Habrá que esperar a nuevas versiones.

    Gracias a todos por vuestras respuestas!

    JoséLuis



    ----- Original Message -----
    From: "Andrés Ferrando" <pruna@sinectis.com.ar>
    To: <lista@phpes.com>; "Enrique Gonzalvo" <kike@bytenet.es>
    Sent: Tuesday, October 23, 2001 7:26 PM
    Subject: Re: [PHP-ES] Varios constructores en una clase

    ate> Como metodo, o constructor, solo puedes tener uno, ya que la oop de php no
    ate> admite sobrecarga. Pero si se puede llamar al metodo con un numero
    ate> indistinto de parametros.


    Creo recordar que php4 si admite sobrecarga. Php3 no.
    En el manual no encontre nada especifico ... lo que si dice es que puede
    llamar al constructor de la clase padre si esa no tiene constructor ...
    Estuve probando, y no se puede:

    Si creas 2 constructores, estos no pueden diferenciarse por el tipo de
    variable, ya que en la definicion de la funcion solo indicas los nombres
    de las variables y no el tipo. Si los diferencias por la cantidad de
    variables, lo que estarias haciendo se haria poniendo valores para las
    variables que no se asignan, del tipo function ($a, $b = 0)
    Si definis 2 metodos (en este caso constructores), solo toma en cuenta
    el segundo, lo que termina de confirmar que la manera correcta es la que
    decia andymix.

    Proba hacer esto:

    class auto {
    function auto ($a) {
    echo "funcion A";
    }
    function auto ($a, $b) {
    echo "funcion B";
    }
    }
    $c = auto(1,2);
    $d = auto(1);

    Va a dar:
    funcion B
    Warning falta argumento 2
    funcion B


    --
    Andrés Ferrando <pruna@sinectis.com.ar>


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedOct 22, '01 at 1:52p
activeOct 23, '01 at 6:05p
posts8
users6
websitephp.net

People

Translate

site design / logo © 2022 Grokbase