Foros del Web » Programando para Internet » PHP »

Metodos staticos o Normales

Estas en el tema de Metodos staticos o Normales en el foro de PHP en Foros del Web. Buenas tardes, he estado leyendo y hay una diversidad de opiniones por internet. Para mi por ejemplo que no tengo excesivos conocimientos me parece mucho ...
  #1 (permalink)  
Antiguo 31/07/2014, 08:53
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 11 años, 5 meses
Puntos: 5
Información Metodos staticos o Normales

Buenas tardes,

he estado leyendo y hay una diversidad de opiniones por internet.

Para mi por ejemplo que no tengo excesivos conocimientos me parece mucho más cómodo usar los métodos estáticos porque no tengo que instanciarlos.

Hay alguna diferencia a parte del modo de Uso entre los métodos estáticos y los normales
  #2 (permalink)  
Antiguo 31/07/2014, 09:19
Avatar de thedaket  
Fecha de Ingreso: junio-2011
Mensajes: 55
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: Metodos staticos o Normales

Pues yo pienso que esto va mas ligado al paradigma de la orientación a objetos que en ese caso te recomiendo leer ya no sobre PHP si no sobre el encapsula miento y abstracción, ahora en base a experencia te puedo decir que a las clases estaticas no puedes generar un buen construtor o hacer el uso de métodos mágicos como __get o __set en todo caso no se si sea recomendable hacer tus clases hibridas con algunos mentodos normales y otros estaaticos de acuerdo a la necesidad.

Saludos.
__________________
Sí AJAX quieres usar jQuery debes agregar...
  #3 (permalink)  
Antiguo 31/07/2014, 12:54
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Metodos staticos o Normales

Código PHP:
Ver original
  1. function rectangulo_area($a, $b)
  2. {
  3.     return $a * $b;
  4. }
  5.  
  6. class Rectangulo {
  7.     public static function area($a, $b)
  8.     {
  9.         return $a * $b;
  10.     }
  11. }
  12.  
  13. echo rectangulo_area(5, 5) . '<br>';
  14. echo Rectangulo::area(5,5);

Funcionalmente hablando es lo mismo. conceptualmente el segundo es un objeto sin estado lo cual queda fuera de lugar con las definiciones de objeto; tener estado y comportamiento.
Los métodos estáticos no son parte del paradigma orientado a objetos, son una conveniencia que te proporciona el lenguaje.
tiene uso por que hay operaciones que no requieren una instancia de objeto para hacer su trabajo es al caso tipico de las utilerías o helpers (Clase Math en Java).

Cita:
Iniciado por Benderzuelo Ver Mensaje
Para mi por ejemplo que no tengo excesivos conocimientos me parece mucho más cómodo usar los métodos estáticos porque no tengo que instanciarlos.
Tener un archivo con funciones y lo que tu haces es lo mismo. No es programación orientado a objetos, solo estas haciendo uso de funciones de una forma mas elegante.
Te sugiero que primero comprendas bien el paradigma, si lo haces, determinar si necesitas un método estático es sencillo.
Asi que toma tu tiempo para familiarizarte con los siguientes conceptos:
  • Objeto
  • Clase
  • Abstracción y Encapsulamiento (Si están relacionados)
  • generalización (herencia)
  • Polimorfismo
  • Interfaz
  • Clase Abstracta
Espero que esto aclare un poco el tema.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 31/07/2014, 13:50
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Metodos staticos o Normales

un metodo estatico y un metodo normal "Funcionalmente hablando NO es lo mismo"

Un metodo estatico sirve generalmente de uso pubilco
Código PHP:
Ver original
  1. <?
  2. public static function getOficina($idoficina=0){
  3.      //code
  4. }
  5. ?>

imagina que esta metodo se aplicó en un gran sistema y ahora necesito acceder a este metodo desde el mismo objeto, por ejemplo quiero la oficina de un empleado.
Si fuera un metodo normal seria genial por que accedo directamente con el $this

Código PHP:
Ver original
  1. <?
  2. public static function getEmpleado(){
  3.      return $this->getOficina();
  4. }
  5. ?>


pero esto da error por que $this no puede acceder de esta forma al metodo estatico getOficina()

NO ES UNA CUESTION DE OPINION DE QUÉ ES MEJOR, SI NO QUE ESTA HECHO PARA UN USO ESPECIFICO

Etiquetas: metodos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:43.