2012-01-10 11 views
0

を定義しました:未定義__construct()内の変数...が、私は次のコード書いて、それを

Class stackOverflowExample { 

    private $hash; 
    private $cookie_file; 

    public function __construct(){ 

     @session_start(); 

     if(isset($_SESSION['gc_hash'])){ 
       $this->$hash = $_SESSION['gc_hash']; 
     }else{ 
       $this->$hash = md5(time()); 
       $_SESSION['gc_hash'] = $this->$hash; 
     } 

     $this->$cookie_file = "./cookies/{$this->$hash}.txt"; 

    } 

} 

をしかし、私は、このエラー

Notice: Undefined variable: hash in /var/www/gausie/gc/GeoCaching.Class.php on line 21

Fatal error: Cannot access empty property in /var/www/gausie/gc/GeoCaching.Class.php on line 21

を取得しています元のコード、行21は$this->$hash = $_SESSION['gc_hash'];を指します。

私はOO PHPを初めて使用していますが、なぜこれが起こっているのか分かりません。何か案は?

答えて

9

だけ$this->hash

$this->$hash$this->$hashを交換するには、名前の変数が変数$hash値に等しい意味

PHPのオブジェクトの表記を使用しているときにのみ、他のどこにも `` this`前に$ `とを必要と
+0

RIADのポイントビーイング。 – Crontab

+0

正解:) '$ this-> $ hash'は、クラスの中に置かれた' $ hash'の内容のような名前の変数を参照します。それがうまくいくためには、 '$ hash = 'hash';を宣言する必要があります。一度やってしまえば、実際に正しい方法ではありません。それを行う方法の答えを参照してください:) – bardiir

+0

ああ。私は馬鹿だと感じる。アップフォース。編集:これはRedditではないことを実現します。 – Gausie

関連する問題