2009-11-02 6 views
0

J'ai cette classe:PHP classe problème variable

class TestClass 
{ 
    var $testvar; 
    public function __construct() 
    { 
     $this->$testvar = "Hullo"; 
     echo($this->$testvar); 
    } 
} 

Et cette méthode pour accéder à:

function getCurrent() 
{ 
    $gen = new TestClass(); 
} 

Je reçois l'erreur suivante:

Notice: Undefined variable: testvar in /Users/myuser/Sites/codebase/functions.php on line 28
Fatal error: Cannot access empty property in /Users/myuser/Sites/codebase/functions.php on line 28

Que se passe-t-il?

Répondre

3

Retirez le $ avant testvar dans votre appel à elle:

$this->testvar = "Hullo"; 
echo($this->testvar); 
+0

Merci. J'ai manqué ça. –

6

Vous n'avez pas besoin d'utiliser la référence variable lorsque vous accédez à la variable:

$this->testvar; 

En utilisant $this->$testvar, votre Le script PHP va d'abord chercher $testvar, puis trouver une variable dans votre classe par ce nom. à savoir

$testvar = 'myvar'; 
$this->$testvar == $this->myvar; 
+0

+1 pour la description détaillée de la raison pour laquelle l'erreur est survenue –

2

Depuis var est dépréciée, je vous suggère de le déclarer comme l'un des secteurs privé, public ou protégé.

class TestClass 
{ 
    protected $testvar; 
    public function __construct() 
    { 
     $this->testvar = "Hullo"; 
     echo $this->testvar; 
    } 
} 
Questions connexes