2016-12-20 2 views
-2

У меня возникла проблема при создании класса для обработки соединений MySQLi, запросов, операторов и т. Д. Код короткий, и вы очень скоро поймете суть.Почему я не могу получить доступ к методу MySQLi close()? Так кажется

Просто пытаюсь ... Ну ... В названии говорится все!

$host = "localhost"; 
$username = "PublicUser"; 
$password = ""; 
$db = "ZooGivers"; 

$connection_manager = new ConnectionManager($host, $username, $password, $db); 
$connection_manager->closeConnection(); 

echo $connection_manager->connection->ping() ? echo "alive" : "dead"; 
echo "<br>"; 

echo "fine"; 


class ConnectionManager { 
    private $connection; 

    function __construct($host, $username, $password, $db) { 
     $this->connection = new mysqli($host, $username, $password, $db); 

     echo $this->connection->connect_error ? $this->connection->connect_error : "connessione eseguita <br>"; 
    } 

    private function getConnection() { 
     return $this->connection; 
    } 

    public function closeConnection() { 
     $this->getConnection()->close(); 
     echo "connessione chiusa <br>"; 
    } 
} 

С $ связи, который содержится внутри другого объекта, является экземпляром MySQLi, должно быть, можно сказать «использовать этот метод этого объекта, содержащегося внутри этого объекта»: $ outerObject-> innerObject-> methodOfInnerObject().

Просьба. Помоги мне! T.T

+0

Вы забыли ту часть, где вы описываете проблему ... – David

+0

Это в названии: Я не могу получить доступ к соединению близко (), и я не понимаю, почему. –

+0

Что вы подразумеваете под "can not access"? Где вы * попробуете *? Что происходит *, когда вы пытаетесь? Что на самом деле происходит здесь? – David

ответ

0

Вы определяете метод, как private:

private function closeConnection() { 
    // ... 
} 

И попытайтесь открыть этот метод из-за пределов объекта:

$connection_manager->closeConnection(); 

private доступность модификатор explicitly forbids this. Если вы хотите, чтобы вызвать функцию из-за пределов объекта, он должен быть public:

public function closeConnection() { 
    // ... 
} 
+0

Я редактировал код, включая метод геттера. Проверьте это, пожалуйста. Еще одна страница: | –

+0

@ DanielGraziani: «Пустая страница» на PHP обычно означает, что есть ошибка. Узнайте, что такое ошибка: http://stackoverflow.com/questions/1475297/phps-white-screen-of-death «Это не работает» не является исправляемой ошибкой. – David

+0

Ты выйдешь за меня замуж? Я искал эти журналы, и я нашел ошибку: синтаксическая ошибка -.- –

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