Может ли кто-нибудь сказать мне, почему это не работает.Почему эта переменная php не определена
class class1 {
private $database;
function class1()
{
$database = $this->connect();
}
private function connect(){
$database = mysqli_connect("localhost","username","","db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
return $database;
}
private function usedb(){
$query = "some sql";
mysqli_query($database,$query);
}
}
Надеюсь, этот простой пример может достаточно четко изобразить мою проблему. Во всяком случае, когда я запускаю что-то вроде этого, я получаю сообщение об ошибке, сообщающее мне, что была ссылка на неопределенную переменную «база данных» в функции «usedb()». Как будто переменная вышла за рамки ... Может ли кто-нибудь дать мне решение?
Поскольку переменная _has_ gone вне сферы действия. '$ database' - локальная переменная в вашей функции; вы должны использовать '$ this-> database' для доступа к свойству класса. – andrewsi
@andrewsi прав: в PHP вам нужно * использовать ключевое слово 'this' для доступа к членам класса, в отличие, скажем, от Java или C#. – SolarBear