[PHP] Dynamische class name + __contruct

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
De titel verklapt het al een beetje.

Heb een script die dynamisch een class naam genereert (liever gezegd uit een url trekt en kijkt of het class bestand bestaat en zo ja, die class include). Dit alles samen met een __autoload functie. Het laden van de functie is geen punt, dat werkt prima.

Maar, als ik die class aanroep, dan wordt de __construct niet aangeroepen. Ik geef een (verkort) voorbeeld:

code:
1
2
3
4
$module = "appel";
$action = array('actie1', 'actie2', 'actie3');

$class = new $module($action);


De class wordt netjes aangemaakt, maar de __construct($action) wordt niet aangeroepen. Als ik daarna een andere functie van de class aanroep werkt het wel prima. Het aanroepen van een functie in de nieuwe class (bijv. $class->execute) werkt prima. Ook als ik $action niet meegeef aan de constructor gebeurd er niks, echo's etc, niks wordt er uitgevoerd.

Wat doe ik fout, wie-o-wie? _/-\o_

  • b19a
  • Registratie: September 2002
  • Niet online
Misschien __construct fout geschreven; hier werkt je voorbeeld gewoon:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$module = "appel";
$action = array('actie1', 'actie2', 'actie3');

$class = new $module($action);

class appel
{
   public function __construct()
   {
      echo "Ik ben een appel";
   }
}


Geeft de verwachte output: "Ik ben een appel"

[ Voor 7% gewijzigd door b19a op 27-11-2008 16:22 ]


Verwijderd

Topicstarter
Nee, dat is correct gespeld.

Vreemde is, als ik de construct handmatig ($class->__construct()) doet ie het ook niet, terwijl er gewoon een echo in staat. De class die ik aanroep extend geen andere classes.

  • gertjuhh
  • Registratie: April 2004
  • Laatst online: 26-04 09:14
Je hebt PHP5+ neem ik aan?
__construct werkt niet in PHP <5

Staat je error reporting aan?
code:
1
2
error_reporting = E_ALL;
display_errors = on;

Misschien gooit PHP errors/warnings die je niet ziet.

En laat anders eens wat meer van je code zien.

[ Voor 28% gewijzigd door gertjuhh op 27-11-2008 16:35 ]


Verwijderd

Topicstarter
Scherp, komen idd errors uit. Tnx!