私は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;
}
}
エラーをスローするコードを表示します。 – Tschallacka
@MichaelDibbetsは、 '$ getAnswers = new GetAnswer_SQLSelect();' – Gamaka