Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Llamar a la función de una propiedad esática

Estas en el tema de Llamar a la función de una propiedad esática en el foro de PHP en Foros del Web. Hola, Estoy intentando hacer algo parecido a lo siguiente Código PHP: class  ClaseA {    public static  $propiedad ;    public function  __construct ()    {         static:: $propiedad  = function()         { ...
  #1 (permalink)  
Antiguo 08/11/2019, 11:35
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 9 años, 11 meses
Puntos: 5
Llamar a la función de una propiedad esática

Hola,

Estoy intentando hacer algo parecido a lo siguiente

Código PHP:
class ClaseA
{
   public static 
$propiedad;

   public function 
__construct()
   {
        static::
$propiedad = function()
        {
              
// código
        
};
   }
}

ClaseA::$propiedad(); 
¿Hay alguna forma de llamar a la función que contiene la propiedad estática en un solo paso?
Es decir, lo he conseguido hacer de la siguiente maera:

Código PHP:
$metodo ClaseA::$propiedad;
$metodo(); 
Gracias.
  #2 (permalink)  
Antiguo 08/11/2019, 12:10
 
Fecha de Ingreso: abril-2011
Mensajes: 40
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Llamar a la función de una propiedad esática

¿Y por qué no declaras un método estático?

Código PHP:
Ver original
  1. class ClaseA
  2. {
  3.    public static function metodo($nombre){
  4.       echo 'hola ' . $nombre;
  5.    }
  6. }
  7.  
  8. ClaseA::metodo('Pepe'); // hola Pepe

La función constructora no la necesitas para definir propiedades/métodos estáticos.
  #3 (permalink)  
Antiguo 08/11/2019, 12:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 9 años, 11 meses
Puntos: 5
Respuesta: Llamar a la función de una propiedad esática

Hola,
gracias por responder.

El código solo es un ejemplo del problema, no es el código real.
Necesito una propiedad estática que contenga una función anónima, y llamarla.

¿Hay alguna forma de hacerlo?

Gracias.
  #4 (permalink)  
Antiguo 08/11/2019, 12:43
 
Fecha de Ingreso: abril-2011
Mensajes: 40
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Llamar a la función de una propiedad esática

Se puede hacer poniendo paréntesis. En vez de hacer:

Código PHP:
Ver original
  1. $metodo = ClaseA::$propiedad;
  2. $metodo();

Puedes hacer:

Código PHP:
Ver original
  1. (ClaseA::$propiedad)();
  #5 (permalink)  
Antiguo 08/11/2019, 13:13
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 9 años, 11 meses
Puntos: 5
Respuesta: Llamar a la función de una propiedad esática

Funcionó!! Gracias



La zona horaria es GMT -6. Ahora son las 21:30.