17. april 2010 - 21:25Der er
6 kommentarer og 1 løsning
klasse nedarving
Hej, sidder lidt og koger over følgende....
En klasse (a) som extender en anden klasse (b). Begge klasser har et interface. Begge klasser har også en konstruktør. Men når jeg opretter et objekt (a) får jeg følgende fejl:
Fatal error: Declaration of User::__construct() must be compatible with that of MembershipInterface::__construct()
Jeg er ikke helt sikker på hvordan jeg løser problemet... Jeg kan jo fjerne konstruktøren i Membership klassen, men det er jeg ikke ret interreseret i.. Jeg kan også slå de to interfaces sammen, men så er jeg 100 % afhængig af at jeg SKAL kalde min User klasse hvergang...
Jeg håber der er nogen der kan guide mig lidt på vej ?
Dette giver fejlen: "Fatal error: Declaration of A::__construct() must be compatible with that of AInterface::__construct() in /A.php on line 3"
Den siger altså, at __construct() i A.php (altså klassen) ikke er angivet som den skulle, ifølge interfacet. For at løse problemet, kan interfacet f.eks. ændres til:
----- AInterface.php ----- <?php
interface AInterface { public function __construct($param1, $param2); }
Fik lige læst lidt op på interfaces, og du har ret :) Ingen Kontruktøre i interfaces. Ved ikke helt om det er en fejl i PHP, men det er ikke tilladt i JAVA. Men nu er det også lang tid siden jeg har rodet med java. Smider du et svar ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.