2016-07-06 7 views
1

私は2つの抽象メソッドを持つ抽象クラスを拡張しています。 私は子供のクラスをインスタンス化しようとすると、私は次のエラーを取得する、未知のエラー:抽象メソッドを呼び出せません(PHP致命的なエラー)

PHP Fatal error: Uncaught Error: Cannot call abstract method GetAnswer::GetAnswer() 

私は両方の親と子の事でGetAnswer()が正常に動作コメントアウト。

PHPバージョン:7.0.2、Wondows 8.1で動作します。

<?php 
abstract class GetAnswer{ 
    abstract public function GetAnswer($Username, $QuestionnaireID, $QuestionID); 
    abstract public function GetAnswers($Username, $QuestionnaireID); 
} 

子クラスファイルapp-getAnswer-db-direct.phpは、次のように

親クラスファイルアプリ-getAnswer-Base.phpというのである

<?php 
require_once 'config-db-login.php'; 
require_once 'app-getAnswer-base.php'; 

class GetAnswer_SQLSelect extends GetAnswer { 

    public function GetAnswer($Username, $QuestionnaireID, $QuestionID){ 
     return null; 
    }  

    public function GetAnswers($Username, $QuestionnaireID){ 
     $connection = new mysqli(dbLogin::$db_hostname, dbLogin::$db_username, dbLogin::$db_password, dbLogin::$db_database); 

     if ($connection->connect_error) die($connection->connect_error); 

     $query = "SELECT `QuestionID`, `Answer` FROM `answerstore`.`answers` AS a JOIN `answerstore`.`participants` AS b ON a.`ParticipantID` = b.`ParticipantID` WHERE a.`QuestionnaireID` = '$QuestionnaireID' AND b.`Username`='$Username'"; 

     $result = $connection->query($query); 
     $connection->close(); 

     return $result;  
    } 
} 
+0

エラーをスローするコードを表示します。 – Tschallacka

+0

@MichaelDibbetsは、 '$ getAnswers = new GetAnswer_SQLSelect();' – Gamaka

答えて

1

を次のように私はあなたが、それはの子クラスをインスタンス化しようとしているときだと思うですParentクラス(GetAnswer)のメソッドGetAnswer()をコンストラクタのように動作させるので、

メソッド名を別のものに変更してみてください。

-1

具体的なクラス 'GetAnswer_SQLSelect'をインスタンス化してから、メソッド 'GetAnswer'を呼び出す必要があります。

$GetAnswer_SQLSelect = new GetAnswer_SQLSelect(); //create new instance. 
$GetAnswer_SQLSelect->GetAnswer($param1, $param2, $param3); //invoke method. 
+0

です。インスタンス化中にエラーが発生しています。 –

+0

あなたの返信であなたが参照した問題が考えられます。 – dios231

関連する問題