2009-10-07 13 views
9

Mam klasę ze zmiennymi składowymi. Jaka jest składnia w PHP, aby uzyskać dostęp do zmiennych członkowskich z klasy, gdy klasa jest wywoływana ze statycznego kontekstu?Jak odnieść się do statycznej stałej zmiennej składowej w PHP

Zasadniczo chcę wywołać metodę klasy (ale nie utworzyć nowego obiektu), ale kiedy wywoływana jest metoda klasy, chcę zainicjować garść statycznych zmiennych stałych, które muszą być współużytkowane przez różne klasy metody.

LUB jeśli jest lepszy sposób na zrobienie tego, co proponuję, podziel się ze mną (jestem nowy w PHP) Dzięki!

np.

 
class example 
{ 
    var $apple; 

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

} 

Odpowiedz

16

Przez wzgląd na zwięzłość złożę tylko PHP 5 wersji:

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

    // Private static member 
    private static $apple; 

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

"Przykład :: $ jabłko = 'red';" Działa, jeśli jesteś poza zakresem klasy Przykład. – camomileCase

+3

Jeśli $ jabłko jest publiczne. – camomileCase

+0

Dzięki Chris. self :: oprócz deklarowania zmiennej jako prywatnej statycznej było to, czego szukałem :) – justinl

2

Zasadniczo chcę, aby zadzwonić do klasy metodę (ale nie utworzyć nowy obiekt), ale kiedy Metoda klasy jest nazywana, I , aby zainicjować kilka stałych statycznych zmiennych , które wymagają , aby można było je wymieniać między różnymi metodami klasy .

Spróbuj

class ClassName { 
    static $var; 

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

ClassName::functionName(); 
+0

dzięki cytrynowi! to też tego szukałem. – justinl

Powiązane problemy