2016-12-20 6 views
-2

私はMySQLi接続、クエリ、文などを処理するクラスを作成する際に問題が発生しているようです。コードは短く、あなたはすぐにその点を理解するでしょう。なぜMySQLi close()メソッドにアクセスできませんか?だから、

ちょうどしようとしています...まあ...タイトルはすべてを言います! $ outerObject-> innerObject->:

$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をのインスタンスである、言う«このオブジェクトの内部に含まれる、そのオブジェクトのメソッドを使用»をすることが可能ですmethodOfInnerObject()。

ください。助けて! T.T

+0

あなたが問題を記述する部分を忘れてしまった... – David

+0

それはタイトルにあります:私は(接続クローズにアクセスすることはできません)メソッドと私はなぜ理解していない。 –

+0

「アクセスできません」とはどういう意味ですか?あなたは*どこで試しますか?試してみるとどうなるの?実際に何が起きているのですか? – 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

私と結婚しますか? これらのログを探したところ、エラーが見つかりました。構文エラー-.- –

関連する問題