2017-01-23 15 views
0

最近、私のウェブサイトをより安全で高速にするためにPDOとOOPの学習を開始しました。私はPHPでOOPにいくつかの問題があります。 私はres(リソースの略)という名前のフォルダとclassesという名前のフォルダとindex.phpファイルをresフォルダに持っています。私はclass.ManageUsers.phpとclass.ManageNewsという2つのクラスが必要なmenu.phpファイルを持っています。 php。私はclass.ManageUsers.phpを必要とするindex.phpファイルで、今クラスdbConnectionを再宣言できません

<?php 

    class dbConnection { 

     protected $db_conn; 
     public $db_name = 'red_sec_net'; 
     public $db_user = 'root'; 
     public $db_pass = ''; 
     public $db_host = 'localhost'; 

     function connect(){ 
      try{ 
       $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name;",$this->db_user,$this->db_pass); 
       $this->db_conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
       return $this->db_conn; 
       $this->conn = null; 
      }catch(PDOException $e){ 
       die('failed to connect to database'); 
      } 
     } 
    } 

?> 

ので、私はちょうど私の前にそれを含める:私はclass.database.phpを含めていますこれらのファイルの両方に、ここでそのファイルのコードがありますmenu.phpを含むが、私はそのページに行くとき、私はこのエラーを取得:私は相談

Cannot redeclare class dbConnection in C:\wamp64\www\redsec\classes\class.database.php on line 3 

人々は私が接続を閉じるべきであると述べたので、私がやったこと

ます$ this->リンク= NULLを使用しました。私が必要とするものを返すと、接続に関連するものを含む他のすべての変数。
は、これが私のコンストラクタメソッドです:

class ManageUsers { 

public $link; 

function __construct(){ 

    $db_connection = new dbConnection(); 
    $this->link = $db_connection->connect(); 
    return $this->link; 
    $this->link = null; 

} 
} 

すべての私の試みは失敗していると私は私の髪を抜くために始めています任意のヘルプは、私はエラーが私はコンストラクタメソッドで何が起こっていると信じ

を高く評価 $db_connection = new dbConnection();

答えて

-1

PHPアプリケーションが読み込まれると、インタプリタは同じクラス宣言を複数回繰り返します。 (同じファイルの複数の介在物が起こる場合)おそらくこれが重複することができ

のinclude_onceやrequire_onceを:それはあなたに感謝働い Cannot redeclare class - php

+0

OMG

はこれを試してみてください。私はそれらの違いを知らなかったし、私は通常それらを使用するすべてあなたが説明してくださいできますか? –

+1

require_onceは、ファイルがすでにインクルードされているかどうかを単純にチェックします。もしあれば、反復をスキップします。それがなければ、それはそれを含んでいます。 require_once()とrequireの使用が常にベストです。 – Kaylined

+0

説明をありがとうございました:)速く、poitn –

関連する問題