elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ¿Llamar a una función que está dentro de una clase?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Llamar a una función que está dentro de una clase?  (Leído 31,455 veces)
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #10 en: 28 Marzo 2009, 23:56 pm »

El ejemplo que puso la wapa tifa (:-*) te sirve... tienes que crear tu instancia y luego llamar tu función. Leete un tuto de lo basico de POO en PHP. Suerte


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #11 en: 29 Marzo 2009, 04:06 am »

Código
  1. <?php
  2.  
  3. class prueba1{
  4. function irf(){ }
  5. function fc5($saludo){
  6.  echo 'test<br />';
  7.  return $saludo;
  8. }
  9. function rastrear($ip, $destino){ }
  10. }
  11.  
  12. $own = prueba1::fc5('hola');
  13. echo $own;
  14. ?>


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #12 en: 29 Marzo 2009, 07:27 am »

Código
  1.  
  2. <?php
  3.  
  4. class prueba1{
  5.  
  6. function irf(){ }
  7.  
  8. function fc5($saludo) {
  9.  
  10.  echo 'test<br />';
  11.  return $saludo;
  12.  
  13. }
  14.  
  15.  
  16. function rastrear($ip, $destino)  {
  17.  
  18. echo $ip . "  " . $destino;
  19.  
  20. }
  21.  
  22. }
  23.  
  24. $own = prueba1::fc5('hola');
  25. echo $own;
  26.  
  27. echo prueba1::rastrear('12', 'Mexico');
  28.  
  29. ?>
  30.  
  31.  
  32.  

Que logica tiene programar lo anterior? para ir llamando funciones una por una, mejor que no programe orientado a objetos... porque la etica de programar con POO es precisamente sacarle provecho a las 3 reglas basicas (Polimorfismo, Encapsulamiento, Herencia). Y con ese ejemplo... la verdad, para hacerlo asi mejor que no programe en PHP en POO y que haga todo estructurado. No le den consejos negativos a este chico, que aparenta que no quiere leerse 1 solo tuto de PHP y si le ponen ejemplos como los anteriores... la verdad animaran a su ego de aplicar una sintaxis erronea dentro de un perfil ya establecido. No vamos a querer que otros desarrolladores comienzen a criticar su codigo o si????
En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #13 en: 29 Marzo 2009, 11:32 am »

Estoy totalmente de acuerdo con ^TiFa^. No tiene sentido crear clases y métodos, usar programación orientada a objetos y luego llamar a la función directamente "trampeándolo". Para eso te haces un archivo php con todas las funciones y luego las llamas directamente, no tiene sentido crear clases para luego no instanciarlas ni utilizarlas correctamente...
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #14 en: 29 Marzo 2009, 18:19 pm »

eso, es común en java, cuando decides completamente POO te toca hacer este tipo de cosas, que en java viene siendo llamar métodos estáticos :rolleyes:

ejemplo

Código
  1. class Color{
  2.  public $rojo = '#FF0000';
  3.  public $verde = '#00FF00';
  4.  public $color = '';
  5.  
  6.  function set_color($color){
  7.    $this->color = $color;
  8.  }
  9. }

ahora... para que coños quiero yo un objeto de tipo color si solo quiero los colores? xD

salu2
En línea

Ojo por ojo, y el mundo acabará ciego.
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #15 en: 29 Marzo 2009, 19:42 pm »

El concepto es precisamente no tratar de trapear o camuflear algo como el estilo del ejemplo expuesto.. porque si vamos todos programando asi, entonces se pierde la realidad de lo que debe cumplirse en la POO.

No confundir $this con que esta llamando funciones y decir es lo mismo como que yo haga clase::funcion(parametro) porque this tiene otro proposito. Dentro de una clase bien estructurada los metodos y los atributos tienen una relacion ya que estan encapsulados dentro de la misma clase.. pero mirando el ejemplo posteado lo que se esta haciendo es una programacion estructurada con intento de camuflaje en un lenguaje orientado a objetos y eso la verdad... teoricamente esta mal, no se aplica y no existe. Es como querer mezclar sintaxis de C y C++ a la vez... eso no te hace mega groso ni mas poderoso, eso esta mal, y hay que respetar las cosas como estan establecidas solo eso.
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: ¿Llamar a una función que está dentro de una clase?
« Respuesta #16 en: 29 Marzo 2009, 20:34 pm »

El concepto es precisamente no tratar de trapear o camuflear algo como el estilo del ejemplo expuesto.. porque si vamos todos programando así, entonces se pierde la realidad de lo que debe cumplirse en la POO.

No confundir $this con que esta llamando funciones y decir es lo mismo como que yo haga clase::funcion(parametro) porque this tiene otro proposito. Dentro de una clase bien estructurada los metodos y los atributos tienen una relacion ya que estan encapsulados dentro de la misma clase.. pero mirando el ejemplo posteado lo que se esta haciendo es una programacion estructurada con intento de camuflaje en un lenguaje orientado a objetos y eso la verdad... teoricamente esta mal, no se aplica y no existe. Es como querer mezclar sintaxis de C y C++ a la vez... eso no te hace mega groso ni mas poderoso, eso esta mal, y hay que respetar las cosas como estan establecidas solo eso.

a eso me refiero, si decides hacer un sistema totalmente orientado a objetos, debes regirte por clases y no mezclar programación estructurada con POO, y suponiendo que tienes una clase color, y quieres un color, no necesitas crear un objeto color para acceder a este, por eso mencioné que en java se llaman a elementos estaticos en clases, lo que viene a ser lo mismo en php si quiero acceder a un elemento, obviamente si quiero un método obligatoriamente debería crear el objeto primero porque si no no tiene razón de ser una clase (aunque esto también pasa en java xD)

por último, al creador del post, le recomiendo aprender a programar en cualquier lenguaje, y si decide seguir con php, leer este blog XD


salu2
« Última modificación: 29 Marzo 2009, 20:38 pm por Nakp » En línea

Ojo por ojo, y el mundo acabará ciego.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines