2009-10-07 27 views
9

Tengo una clase con variables de miembro. ¿Cuál es la sintaxis en PHP para acceder a las variables miembro desde dentro de la clase cuando se llama a la clase desde un contexto estático?Cómo hacer referencia a una variable de miembro de constante estática en PHP

Básicamente quiero llamar a un método de clase (pero no crear un objeto nuevo), pero cuando se llama al método de clase, quiero inicializar un puñado de variables constantes estáticas que deben compartirse entre las diferentes clases métodos.

O si hay una forma mejor de hacerlo, entonces lo que propongo, por favor, comparta conmigo (soy nuevo en PHP) Gracias!

por ejemplo.

 
class example 
{ 
    var $apple; 

    function example()//constructor 
    { 
     example::apple = "red" //this throws a parse error 
    } 

} 

Respuesta

16

Por el amor brevedad, sólo ofrecerá la versión PHP 5:

class Example 
{ 
    // Class Constant 
    const APPLE = 'red'; 

    // Private static member 
    private static $apple; 

    public function __construct() 
    { 
     print self::APPLE . "\n"; 
     self::$apple = 'red'; 
    } 
} 
+2

"Ejemplo :: $ manzana = 'rojo';" Funciona si está fuera del alcance de la clase Ejemplo. – camomileCase

+3

Si $ apple es público. – camomileCase

+0

Gracias Chris. el self :: además de declarar la variable como una estática privada era lo que estaba buscando :) – justinl

2

Básicamente quiero llamar a un método de clase (pero no crear un nuevo objeto), pero cuando el el método de clase se llama, I quiere un puñado de variables constantes estáticas que se inicializarán que necesitan para ser compartidas entre los diferentes métodos de clase .

Prueba este

class ClassName { 
    static $var; 

    function functionName() { 
    echo self::$var = 1; 
    } 
} 

ClassName::functionName(); 
+0

thanks lemon! esto es también lo que estaba buscando. – justinl

Cuestiones relacionadas