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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  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 721 veces)
Leguim


Desconectado Desconectado

Mensajes: 643



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
***
Conectado Conectado

Mensajes: 5.006


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: 643



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
Colaborador
***
Conectado Conectado

Mensajes: 1.632



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: 643



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 2,189 Ú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 5,072 Ú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 1,669 Último mensaje 8 Septiembre 2016, 16:15 pm
por ivancea96
Metasploit dl deprecated las fiddle!
Hacking Básico
Guantes2323 0 859 Último mensaje 1 Agosto 2017, 00:49 am
por Guantes2323
error uses or overrides a deprecated API.
Java
JaimeN 1 652 Último mensaje 13 Marzo 2019, 16:56 pm
por spcruzaley
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines