[php] dynamisch classes laden/uitvoeren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik ben bezig met een OOP projectje in PHP4 (idd, OMG) Nu wil ik in mijn script zoeken naar modules aan de hand van een filename, en als deze is gevonden de module includen en ook initialiseren.

Nu heb ik even lopen denken hoe ik dit kan doen maar ik kom er nog niet echt uit. Ik heb nu een array van de modules die gevonden zijn, maar hoe kan ik deze nu initialiseren? het kan natuurlijk met een eval("\$var = new $modules[0];") maar dit vind ik nogal een superranzige methode.

Ik denk dat dit moet gebeuren met references, maar zoek maar is op google naar php reference :P daar wordt je ook niet vrolijk van. Hoe moet ik dit aan gaan pakken?

Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Als het goed is zou het ook moeten werken zonder eval...
PHP:
1
$var = new $module[0];

Ik gebruik het tenminste zo, alleen is bij mij de naam van de class niet uit een array maar een gewone string dus

PHP:
1
2
$klasse = 'dezeKlasse';
$var = new $klasse;

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, ga ik dat zo is proberen, nooit gedacht dat het zo simpel zou kunnen zijn :D
werkt dit ook zo:

PHP:
1
2
3
$var = new $modules[0];

echo $var->$vars[0];


of moet dit anders worden aangepakt?

Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Als $vars[0] een variabele is van de klasse $var wel.

Maar dat had je natuurlijk ook zelf wel ff kunnen testen ;)
edit:

Brakkie heeft gelijk |:(

[ Voor 16% gewijzigd door beetle71 op 26-10-2003 16:32 ]


Acties:
  • 0 Henk 'm!

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

$var->$vars[0];

die tweede $ hoort daar niet.

[ Voor 71% gewijzigd door Brakkie op 26-10-2003 16:01 ]

Systeem | Strava


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Brakkie schreef op 26 oktober 2003 @ 16:00:
$var->$vars[0];

die tweede $ hoort daar niet.
ik bedoel dat je een array hebt, vars, met alle namen van de variabelen erin. Als $vars[0] dus "blaat" bevat, en ik wil het variabele $var->blaat bereiken, hoe moet ik dat dan doen?

Acties:
  • 0 Henk 'm!

  • wim__k
  • Registratie: Februari 2003
  • Laatst online: 21-11-2020
volgens mij bedoel je zoiets als de __autoload() methode die jammer genoeg pas in PHP5 wordt geintroduceerd...dus met PHP4 zal je nog de bovengenoemde manieren moeten gebruiken.

PHP:
1
2
3
4
5
6
function __autoload($class){
    require_once( 'include/' . $class . '.php');
}


$foo = new AutoLoadClass();

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
PHP:
1
2
3
4
5
6
$var = new $modules[0];

foreach($var->$vars as $randomvariable)
{
  echo $randomvariable;
}


Zoiets?

[edit]
Vooral als je hulp wilt, is het in voorbeelden uitermate handig om fatsoenlijke namen aan je voorbeelden te geven. Als iemand $var en $vars ziet staat, gaat dat heel erg verwarrend overkomen...

[ Voor 46% gewijzigd door Grijze Vos op 26-10-2003 18:09 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info

Pagina: 1