[php] class.forname?

Pagina: 1
Acties:

  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
Oftwel ik heb een var $className
en ik heb een class myClass

PHP:
1
$className = "myClass";


nu wil ik eigenlijk ipv $aClass = new myClass de waarde van $className gebruiken i.v.m. het initialiseren van classes op basis van welke bestanden er zijn...

met java doe je dan zoiets
code:
1
aClass = Class.forName("myClass");


iemand enig idee hoe dit in php werkt, en of het uberhaubt mogelijk is?

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
probeer eens
code:
1
$object = new $classname();

heb het nooit geprobeerd, maar wie weet

Pas de replâtrage, la structure est pourrie.


  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
Apollo_Futurae schreef op 21 oktober 2002 @ 20:45:
probeer eens
code:
1
$object = new $classname();

heb het nooit geprobeerd, maar wie weet
Zo kun je idd ook functies aanroepen, denk aan:

PHP:
1
2
3
4
5
6
function blaat() {
    echo "woei";
}

$woei = "blaat";
$woei();

  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
ik zal es ff proberen

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • D-RiSe
  • Registratie: September 2000
  • Laatst online: 19-03 19:37

D-RiSe

Kick the baby

Topicstarter
holy fuck... werkt gewoon

thank joe verie muts, was er zelf nooit opgekomen waarschijnlijk....
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?

class woei
{
function doSomething() {
echo("AAAAAAH");
}
}

$huh = "woei";
$duh = new $huh();
$duh->doSomething();

?>

intel silver reef, celly 2.0 Ghz, 256mb ddr, G2MX


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
MisterData schreef op 21 oktober 2002 @ 20:47:
Zo kun je idd ook functies aanroepen
sterker nog; het is een functieaanroep :o

Pas de replâtrage, la structure est pourrie.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
MisterData schreef op 21 oktober 2002 @ 20:47:
Zo kun je idd ook functies aanroepen, denk aan:

PHP:
1
2
3
4
5
6
function blaat() {
    echo "woei";
}

$woei = "blaat";
$woei();
Dat is echt! by far most het meest ranzige stukje optie wat ik in een taal heb gezien :r

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:17

mulder

ik spuug op het trottoir

Idd, dit is wel heel erg bah. Ik neem aan dat er wel een (betere?) nettere methode is?

oogjes open, snaveltjes dicht


Verwijderd

Don Facundo schreef op 21 oktober 2002 @ 21:05:
Idd, dit is wel heel erg bah. Ik neem aan dat er wel een (betere?) nettere methode is?
denk het niet...

http://www.php.net/manual...s.variable-functions.php'

edit:

functies kun je wel aanroepen met call_user_func();
en functies binnen een class met call_user_method();
maar een class instantieren is geen functie voor volgens mij...

Verwijderd

_/-\o_ Ter informatie..... _/-\o_
Een class in PHP behoord er zo uit te zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
class myClass
{
 var $attribute = "my attribute.";
 
 function show_attribute()
 {
    echo $this->attribute . "<br>\n";
 }
}

$object = new myClass();      \\maak een object van de class myClass aan
$object->show_attribute();   \\roep vanuit de code een functie uit die class aan


Je kunt ook overerving gebruiken zoals hier:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class super
{
 function super_echo()
 {
  echo "Superclass.<br> \n";
 }
}

class sub extends super
{
 function sub_echo()
 {
  echo "Subclass.<br> \n";
 }
}

$object = new sub();      //maak een instantie van het subclass object
$object->sub_echo();     //roep een subclass functie aan
$object->super_echo();  //roep een geërfde superclass functie aan


--<Evt. voor later ;) >--
Tevens is loading mogelijk, functies in beide klassen met dezelfde naam, de functie met de juiste variabelen wordt dan gebruikt.

En er bestaat overriding.. in elke class zit dezelfe functie met dezelfde argumenten, hierbij kun je met een scope modiefier aanwijzen welke functie genomen moet worden.

Verwijderd

O mijn god.. dat heb ik eerder gister nog gevraagd |:( |:(
Klik op me naam en zoek topic maar.. staat als eerste of 2e
Pagina: 1