1

これはすべての人にとってばかげているように聞こえるかもしれませんが、私は PHP の静的関数でこの問題に直面しています。PHP での OO プログラミングはまだ初めてなので、助けが必要です。

アプリケーションで接続およびcrud操作のすべての機能を処理するDBクラスがあります。DBクラスを拡張し、そのメソッドを使用する別のクラスがあります。

     class Database(){

          function db_connect(){
                //body
            }
      }

    /*****The inheritor class*****/  
    class Inheritor extends Database{
         function abcd(){
                  $this->db_connect();         //This works good
          }

     }

しかしfunction abcd(){}、同じタスクを実行するため、他のクラスで を使用する必要があります。新しいクラスは、たとえばデータベース クラスを拡張するものです。

     class newClass extends Database{

           function otherTask(){
               //Here I need to call the function abcd();
            }
     }

staticを作成しようとしましたが、クラス Inheritor の関数定義でfunction abcd()使用できません。thisデータベースクラスのオブジェクトも作成しようとしましたが、エラーが発生したため、許可されていません。

誰かが私がやろうとしていることを達成するための正しい方法を提案できますか?

4

2 に答える 2

2

クラスを拡張すると、新しいクラスは以前のメソッドを継承します。例:

Class database{
Method a(){}
Method b(){}
Method c(){}
}
Class inheritor extends database{
//this class inherit the previous methods
    Method d(){}
}
Class newCalss extends inheritor{
    //this class will inherit all previous methods
    //if this class you extends the database class you will not have 
    //the methods d() 

}
于 2013-10-15T16:32:17.587 に答える