2016-12-24 3 views
-2

Je souhaite déclarer la variable globale dans __construct() et y accéder à partir d'une autre fonction publique.Accéder à la variable globale à partir de construct php

class NewMineClass(){ 
    public function __construct(){ 
    global $goaway; 
    } 

    public function imHere(){ 
    $this->goaway; 
    } 
} 

Mais cela ne fonctionne pas.

+1

double possible de [ Variable globale dans un constructeur avec PHP] (http://stackoverflow.com/questions/1927881/g lobal-variable-inside-a-constructeur-with-php) –

+0

'$ this' fait référence à des variables d'objet. Si vous devez faire cette merde folle et que '$ goaway' a été déclaré dans la portée globale, alors utilisez' $ GLOBALS'. Montrez plus de code comme d'où vient le '$ goaway' pour de meilleurs résultats. – AbraCadaver

+0

le nom de classe doit être sans() – denny

Répondre

2

Rencontrez class properties. Je pense que je ferais mieux de vous expliquer par un exemple:

// Note that the class name needs no parenthesis 
class NewMineClass 
{ 
    // This is a class property, it's accessible within the class scope. 
    // All the methods of this class can access it using `$this->goaway`. 
    // If you want it to be accessible from outside the class, you need 
    // to declare it as public instead of protected. 
    protected $goaway; 

    public function __construct() 
    { 
     $this->goaway = 'something i want to initialize in the constructor'; 
    } 

    public function imHere() 
    { 
     echo $this->goaway; 
     // Prints: something i want to initialize in the constructor 
    } 
} 

Je vous encourage à lire sur les concepts PHP POO: