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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] [Pregunta]: Deprecated Non-static method users
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] [Pregunta]: Deprecated Non-static method users  (Leído 2,524 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Resuelto] [Pregunta]: Deprecated Non-static method users
« en: 11 Febrero 2020, 05:37 am »

Investigue un poco sobre el tema y esto vendría a ser solamente una advertencia, no un error como tal... digamos que una parte de mi código es este:

Deprecated
: Non-static method users::Add() should not be called statically in


Código
  1. class users
  2. {
  3.      function Add($parametro_1, $parametro_2, $etc)
  4.     {
  5.         // [Consulta SQL para agregar un usuario]
  6.     }
  7. }
  8.  

y el uso sería
Código
  1. users::Add($x, $y, $z); // agrega un usuario a la base de datos
  2.  

No está mal pero según lo que indica la advertencia esto es obsoleto, mi pregunta es por qué? en que cambia el que sea algo estático (que la verdad tampoco se mucho de esto) pero mi tema va más que nada para saber porque debo hacer esto estático... cual es la diferencia o que ventaja trae?

EDIT: Ya lo pude solucionar, por lo menos ya la advertencia no aparece.

Código
  1. $object = new users;
  2. $object->Add($x, $y, $z);
  3.  

Igualmente dejo esto abierto por si alguien quiere darme más información.


Mod: Temas sobre PHP van al subforo de PHP.


« Última modificación: 22 Febrero 2020, 23:23 pm por #!drvy » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: Deprecated Non-static method users
« Respuesta #1 en: 11 Febrero 2020, 13:11 pm »

Un método estático no tiene referencia a un objeto en particular. La advertencia está ahí porque métodos públicos generalmente hacen referencia a su instancia a través de $this (la instancia del objeto). Imagina que tienes una clase Caja que tiene una sola variable para sus contenidos y dos metodos que ingresan contenidos y extraen contenidos. Tu puedes agarrar una caja entre un montón de cajas y decir:

Código
  1. $cajas[1]->extraer();

o

Código
  1. $cajas[359]->ingresar($otroContenidoOCaja);

Si tú haces:

Código
  1. Caja::extraer()

No hay ninguna referencia a alguna instancia de alguna caja. Por lo tanto el código muy probablemente falle.


En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: Deprecated Non-static method users
« Respuesta #2 en: 11 Febrero 2020, 16:04 pm »

Gracias, me quedo un poco más claro.
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.054



Ver Perfil
Re: [Pregunta]: Deprecated Non-static method users
« Respuesta #3 en: 12 Febrero 2020, 01:47 am »

- Los atributos y métodos estáticos tienes sus usos. Si ves que los necesitas tienes que especificarlo en tu código tal como dice el mensaje de Advertencia:

-- Con advertencia:

Código
  1. <?php
  2.  
  3.  class User {
  4.    function saludar($param_1) {
  5.      echo "Hola, soy $param_1";
  6.    }
  7.  }
  8.  
  9.  User::saludar("Miguel");
  10.  
  11. ?>

Citar
Deprecated: Non-static method User::saludar() should not be called statically in D:\SFT\UniServerZ\www\index.php on line 9
Hola, soy Miguel


-- Sin advertencia:

Código
  1. <?php
  2.  
  3.  class User {
  4.    static function saludar($param_1) {
  5.      echo "Hola, soy $param_1";
  6.    }
  7.  }
  8.  
  9.  User::saludar("Miguel");
  10.  
  11. ?>

Citar
Hola, soy Miguel

- Los Atributos y Métodos estáticos sirven para poder acceder a ellos sin tener que crear una Instancia de Clase, dependerá de tus necesidades el utilizarlas o no. También se utilizan y sirven en Clases Instanciadas si van a tener una utilizad especial como guardar constantes (PI), semiconstantes (cadenas de conexión), etc.
En línea

Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
Re: [Pregunta]: Deprecated Non-static method users
« Respuesta #4 en: 13 Febrero 2020, 02:07 am »

Gracias!!!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta tonta [ Each & Static ] « 1 2 »
Programación Visual Basic
Sancho.Mazorka 14 3,682 Último mensaje 23 Junio 2007, 18:39 pm
por Hans el Topo
problema, ruta de los recursos. non-static method... No puedo poner una imagen.
Java
kinos 3 6,035 Último mensaje 27 Octubre 2009, 20:39 pm
por kinos
Mientro static dentro de clase static, simbolo externo sin resolver
Programación C/C++
patilanz 3 3,054 Último mensaje 8 Septiembre 2016, 16:15 pm
por ivancea96
Metasploit dl deprecated las fiddle!
Hacking
Guantes2323 0 1,782 Último mensaje 1 Agosto 2017, 00:49 am
por Guantes2323
error uses or overrides a deprecated API.
Java
JaimeN 1 2,140 Último mensaje 13 Marzo 2019, 16:56 pm
por spcruzaley
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines