¿Llamar a una función que está dentro de una clase?

Iniciado por Servia, 28 Marzo 2009, 13:23 PM

0 Miembros y 1 Visitante están viendo este tema.

дٳŦ٭

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


Con sangre andaluza :)


WHK

Código (php) [Seleccionar]
<?php
 
class prueba1{
 function 
irf(){ }
 function 
fc5($saludo){ 
  echo 
'test<br />';
  return 
$saludo;
 }
 function 
rastrear($ip$destino){ }
}
 
$own prueba1::fc5('hola');
echo 
$own;
?>

^Tifa^

Código (php) [Seleccionar]


<?php
 
class prueba1{

 function 
irf(){ }

 function 
fc5($saludo) {

  echo 
'test<br />';
  return 
$saludo;

 
}


function 
rastrear($ip$destino)  {

 
echo $ip "  " $destino;

}

}

$own prueba1::fc5('hola');
echo 
$own;

echo 
prueba1::rastrear('12''Mexico');

?>





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????

Spider-Net

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...

Nakp

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 (php) [Seleccionar]
class Color{
  public $rojo = '#FF0000';
  public $verde = '#00FF00';
  public $color = '';

  function set_color($color){
    $this->color = $color;
  }
}


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

salu2
Ojo por ojo, y el mundo acabará ciego.

^Tifa^

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.

Nakp

#16
Cita de: ^TiFa^ 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 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
Ojo por ojo, y el mundo acabará ciego.