2016-03-01 1 views
-1

J'ai une classe. Dans cette classe, j'ai un membre statique privé. J'ai aussi une fonction de classe protégée ainsi qu'une fonction de classe statique publique. Essentiellement, j'essaie de définir le membre statique. Le flux est ceci.PHP: Définition d'un membre statique à partir d'une fonction de classe statique

À l'intérieur de la fonction de classe protégée, il y a un appel à l'autre fonction de classe: ex.

class MyClass extends someOtherClass{ 

    private static $myVar;  

    protected function login(){ 
     MyClass::createDBInstance(); 

    } 

    public static function createDBInstance(){ 
     self::$myVar = 'someValue'; 
    } 
} 

Le problème que je vais avoir, est qu'une fois qu'il fait dans le CreateDBInstance, et tente de définir l'auto :: maVar, il tue. Est-ce que je néglige quelque chose de si fondamental?

+1

Quand "ça tue", quelle erreur obtenez-vous (journal Apache par exemple)? –

+1

Ce code fonctionne définitivement. Êtes-vous sûr de ne pas essayer d'accéder à login() depuis l'extérieur de la portée? – WhoIsJohnDoe

+0

Je suis d'accord: http://codepad.org/TYevTaE4 –

Répondre

0

essayer

private static $myVar; 

et

self::$myVar = 'someValue'; 

Notez les $ caractères.

+0

désolé typo ... ils ont tous les deux – Srmuhs

+0

Okay. Pouvez-vous obtenir un message d'erreur, soit sur la page ou dans un fichier journal? Cela aiderait probablement. Peut-être aussi montrer le code où vous appelez 'createDBInstance'. – OscarJ

+0

PHP Erreur irrécupérable: Accès à la propriété statique non déclarée: MyClass :: $ myVar – Srmuhs