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 ?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
17. april 2010 - 21:53#1
Du har højst sandsynlig en fejl i de parametre du tilføjer til __construct() i enten dit interface eller din klasse. Har lavet et eksempel her:
----- A.php ----- <?php
class A implements AInterface { public function __construct($param1, $param2) { echo 'Dette er klasse A'; } }
----- AInterface.php ----- <?php
interface AInterface { public function __construct(); }
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.