2012-01-10 75 views
0

我已經寫了下面的一段代碼:未定義的變量...但我沒把它定義

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

+0

里亞德的觀點存在使用PHP的對象符號時,你只需要前'this'的'$'和無處。 – Crontab 2012-01-10 14:58:08

+0

正確:) - '$ this - > $ hash'會引用一個名爲類似於放置在類中的$ hash的內容的變量。因此,爲了它的工作,你需要聲明'$ hash ='hash';一旦完成,它也可以這樣工作,但這不是真正的做法。看到如何做到這一點的答案:) – bardiir 2012-01-10 14:58:50

+0

啊。我感到很傻。 Upvotes。編輯:我意識到這不是Reddit。 – Gausie 2012-01-10 14:59:28

相關問題