2012-03-20 2 views
1

Недавно я начал с PHP Object Oriented, и я не могу это сделать. В методе я объявляю свойство, которое я хочу использовать в другом методе, но получаю сообщение об ошибке: Неопределенное свойство: База данных :: $ test.PHP Как использовать свойство, объявленное в другом методе?

class Database { 

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

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

} 

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

Опять же, я новичок в ООП. Я попытался использовать глобальный с учетом функции, которая имела бы смысл в обычной функции, но я просто получаю еще одну ошибку, когда я ее использую.

+2

Вы не можете объявить свойство в методе. Фактически, в вашем коде у вас вообще нет свойств, хотя вы пытаетесь использовать его в своей функции 'disconnect()' –

+2

@LightnessRacesinOrbit не совсем так. Если 'connect()' set '$ 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

Смежные вопросы