__construct()中的未定义变量...但我确实定义了它

时间:2012-01-10 14:55:19

标签: php oop

我写了以下代码:

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";

    }

}

但是我收到了这个错误

  

注意:未定义的变量:hash in   第21行的/var/www/gausie/gc/GeoCaching.Class.php

     

致命错误:无法访问空属性   第21行的/var/www/gausie/gc/GeoCaching.Class.php

在原始代码中,第21行引用$this->$hash = $_SESSION['gc_hash'];

我不明白为什么会发生这种情况,尽管我是OO PHP的新手。有任何想法吗?

1 个答案:

答案 0 :(得分:10)

只需将$this->$hash替换为$this->hash

$this->$hash表示名称等于变量$hash

的变量