Autor Tema: [POO][!TUT] Clases constantes.  (Leído 1621 veces)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
[POO][!TUT] Clases constantes.
« en: 01 de Julio de 2010, 23:10:25 pm »
Bueno, primero que nada debemos saber como hacer una variable constante, las variables constantes se hacen poniendo el prefijo const, ejemplo:
Citar
class PHPeros {
const nombre;
}

Si se fijan en el ejemplo anterior, cuando vamos hacer la variable constante no se pone el $.

Las variables constantes no se llaman como las normales, sino que se llaman como las estaticas (Si leyerón el tuto sabran), ejemplo:
Citar
PHPeros::nombre; (si estamos afuera de la clase)
self::nombre; (Si estamos adentro de la clase)


Bueno, esto fue todo, he explicado lo mejor que pude & espero que puedan aprender algo sobre las clases constantes.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Comunidad PHPeros

[POO][!TUT] Clases constantes.
« en: 01 de Julio de 2010, 23:10:25 pm »

Desconectado javipilo

  • PHPero Experto
  • *****
  • Mensajes: 975
  • Karma: 31
  • Sexo: Masculino
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #1 en: 01 de Julio de 2010, 23:36:25 pm »
Vale y esto para que sirve exactamente...

Saludos

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #2 en: 01 de Julio de 2010, 23:40:43 pm »
Supongamos que quieres mostrar una variable afuera de la clase pero no quieres instancear la clase, pues puedes ponerla constante & mostrarla así: miClase::constante
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[POO][!TUT] Clases constantes.
« Respuesta #3 en: 01 de Julio de 2010, 23:45:41 pm »
A ese le veo una mala utilidad, de acuerdo a tu último ejemplo Focux.

Esto de andar usando funciones y métodos sin instanciar clase y cosas así, siento que se están yendo fuera del concepto general de lo que es una POO.

En programación estructurada, como designarías una constante?

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #4 en: 01 de Julio de 2010, 23:48:42 pm »
A ese le veo una mala utilidad, de acuerdo a tu último ejemplo Focux.

Esto de andar usando funciones y métodos sin instanciar clase y cosas así, siento que se están yendo fuera del concepto general de lo que es una POO.

En programación estructurada, como designarías una constante?
Sólo es un ejemplo, no es que se le da ese uso, los métodos que se podrían poner sin instancear son métodos que deberas estar utilizando a cada momento, por ejemplo una clase para hacer consultar o una conexión a la bd de datos, tambien cave recalcar que si quieren no estar instanceando pero no quieren usar clases estaticas, lo mejor sería serializar la instancea.
« Última modificación: 02 de Julio de 2010, 19:01:06 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #5 en: 02 de Julio de 2010, 19:08:59 pm »
Con respecto a la otra pregunta que no la había visto, ahora mismo estoy programando una clase para un framework que está haciendo un amigo & estoy usando algunas variables constantes, cuando termine posteo la clase & podrás ver el uso que le di.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #6 en: 02 de Julio de 2010, 23:43:28 pm »
Las clases y metodos constantes se suelen usar para clases que no necesitan instanciarse.
Un ejemplo es la clase Math de Java, es una clase pero no se instancia porque solo hace operaciones matemáticas, y hacer un objeto para cada operación no es lógico.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[POO][!TUT] Clases constantes.
« Respuesta #7 en: 03 de Julio de 2010, 04:27:11 am »
Las clases y metodos constantes se suelen usar para clases que no necesitan instanciarse.
Un ejemplo es la clase Math de Java, es una clase pero no se instancia porque solo hace operaciones matemáticas, y hacer un objeto para cada operación no es lógico.

Saludos
Es que sí, de esta manera, el conjunto de métodos de dicha clase formaría también lo conocido como "librería"... O sea que de esta manera, se hace mucho más factible meter en un archivo un conjunto de funciones sin clase ni nada, y luego le hacemos un require_once() en nuestro documento y llamamos la función y ya...

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #8 en: 03 de Julio de 2010, 17:54:59 pm »
Tambien para que no se confunda una diferencia entre las variables estaticas & las constantes es que las constantes son inmodificables.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[POO][!TUT] Clases constantes.
« Respuesta #9 en: 04 de Julio de 2010, 20:30:19 pm »
Y como le doy valor a esa constante?..
Es decir, como creo una constante dentro de la clase...

Por ejemplo, si quisiera hacer:

$pi = 3.1416;

Pero como atributo de la clase...?

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #10 en: 04 de Julio de 2010, 22:24:16 pm »
Lee arriba, lo explique.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[POO][!TUT] Clases constantes.
« Respuesta #11 en: 04 de Julio de 2010, 22:30:42 pm »
Lee arriba, lo explique.
¿En serio?

class PHPeros {
const nombre;
}

Eso es lo único que veo.
O sea que yo puedo hacer esto:

class PHPeros {
   const pi;
}

Pero como le doy valor a ese pi?

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #12 en: 04 de Julio de 2010, 22:51:26 pm »
Puedes hacerlo de esta manera
const pi = 3.1416;
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #13 en: 04 de Julio de 2010, 23:03:59 pm »
Es que sí, de esta manera, el conjunto de métodos de dicha clase formaría también lo conocido como "librería"... O sea que de esta manera, se hace mucho más factible meter en un archivo un conjunto de funciones sin clase ni nada, y luego le hacemos un require_once() en nuestro documento y llamamos la función y ya...

Eso depende de muchas cosas, como todo.

Por seguir con el ejemplo de antes, en Java no cabe la posibilidad que mencionas, porque es un lenguaje enteramente orientado a objetos, y por lo tanto sus librerias no tienen funciones sueltas, sino que todo esta dentro de una clase, como el caso de Math.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[POO][!TUT] Clases constantes.
« Respuesta #14 en: 04 de Julio de 2010, 23:39:09 pm »
Es que sí, de esta manera, el conjunto de métodos de dicha clase formaría también lo conocido como "librería"... O sea que de esta manera, se hace mucho más factible meter en un archivo un conjunto de funciones sin clase ni nada, y luego le hacemos un require_once() en nuestro documento y llamamos la función y ya...
El punto de POO es hacer el código reutilizable para así ayudar al programador & disminuir los altos costos de programación
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>