PHP如何使用另一个方法声明的属性?

时间:2012-03-20 18:36:08

标签: php oop

我最近开始使用PHP面向对象,但我似乎无法完成这项工作。在一个方法中,我声明了一个我想在另一个方法中使用的属性,但是我收到一个错误:未定义的属性:Database :: $ test

class Database {

    public function connect() {
        $connection = 'hoi';
    }

    public function disconnect() {
        echo $this->connection;
    }

}

$db = new Database();
$db->connect();
$db->disconnect();

同样,我是OOP的新手。我尝试使用全局,考虑到函数的范围,这在常规函数中是有意义的,但是当我使用它时,我只是得到了另一个错误。

2 个答案:

答案 0 :(得分:7)

您已将连接声明为变量,而不是属性。这就是你想要的。

class Database {

    private $connection;

    public function connect() {
        $this->connection = 'hoi';
    }

    public function disconnect() {
        echo $this->connection;
    }

}

阅读PHP.net documentation on classes and objects

答案 1 :(得分:5)

public function connect() {
    $connection = 'hoi';
}

只是定义一个局部变量,而不是作为对象中的属性赋值。它应该是:

    $this->connection = 'hoi';