2009-10-31 7 views
0

Quand je fais:Erreur de syntaxe dans une classe mais pas à l'extérieur?

class MyClass { 
    public $copy = file_get_contents('somefile.mdown'); 
} 

je reçois:

PHP Parse error: syntax error, unexpected '(', expecting ',' or ';' \ 
in /file.php on line 25 

Je suis nouveau à des classes en PHP, mais pas oop.

Je peux, bien sûr, faire simplement file_get_contents en dehors de la classe et tout va bien. Qu'est-ce qui se passe avec ça?

Répondre

1

essayer

class MyClass 
{ 
    public var $copy; 

    public function MyClass() 
    { 
     $this->copy = file_get_contents('somefile.mdown'); 
    } 
}; 

$obj = new MyClass(); 

Quand je déclare $ copie dans une classe avec

public var $copy; 

je dis « Quand je fais une chose de type MyClass il aura une variable membre appelée « copie "".

seulement quand cette classe est créée, et le constructeur appelé (ie $ obj = new MyClass), fait $ copie existe dans le cadre de quelque chose de type MyClass. Dans le constructeur ci-dessus (fonction MyClass) que chose est la variable $ this, signifiant "la chose actuelle sur laquelle on m'a dit de travailler". Dans ce cas, cela peut être $ obj dans l'exemple ci-dessus.

Cheers, -Doug

+0

Ce fut ce que je travaillais après avoir écrit la question, merci! –

+0

De plus, vous avez besoin d'un '()' après MyClass, sinon vous obtenez une erreur de syntaxe. –

+0

cool merci :) poste est mis à jour avec correction. –