2012-03-20 8 views
1

私は最近、PHP Object Orientedを使い始めましたが、これは実現できませんでした。あるメソッドでは、別のメソッドで使用したいプロパティを宣言しますが、エラーが発生します。未定義のプロパティ:Database :: $ testPHP他のメソッドで宣言されているプロパティの使い方は?

class Database { 

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

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

} 

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

また、私はOOPで新しくなりました。私はグローバルを使用してみましたが、通常の機能では意味をなさない関数の範囲を念頭に置いていましたが、私はそれを使用すると別のエラーが発生します。

+2

メソッド内でプロパティを宣言することはできません。実際には、あなたのコードでは、 'disconnect()'関数 –

+2

@LightnessRacesinOrbitで正確に使用することはできませんが、プロパティはまったくありません。 'connect()' '$ this-> connection'を設定するとうまくいくでしょうが、それは最善の方法ではありません。 – AndrewR

答えて

5

は、ローカル変数を定義するだけで、オブジェクトにプロパティとして割り当てられません。

$this->connection = 'hoi'; 
7

あなたは変数ではなくプロパティとして接続を宣言しました。これはあなたが望むものです。

class Database { 

    private $connection; 

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

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

} 

PHP.net documentation on classes and objectsをお読みください。

+2

これについてphp.netのチュートリアルがあります:http://www.php.net/manual/en/language.oop5.properties.php – uotonyh

関連する問題