» »

PHP class iz spremenljivke

PHP class iz spremenljivke

talmai ::

Takole je. Imam podani spremenljivki $class in $name. In potem naredim:
$$name = new $class;


(in recimo da class izgleda tako:
class neki{
 funkcija blabla($a,$b){
  echo $a . $b;
 }
}

)

Potem želim klicati funkcijo v $$name in je vse ok
call_user_method_array($function,$$name,$parameters);


Tak class lahko uporabljam glede na podatke, ki jih imam podane v določenih spremenljivkah. Problem pa je pri takih, classih, ki zahtevajo parametre že pri ustvarjanju predmeta.
class neki{
 funkcija neki($a,$b){
  echo $a . $b;
 }
}


Parametre imam v arrayu in je v bistvu problem, ker ne vem, koliko jih je. Tega pri klicanju funkcije ni, ker funkcija
call_user_method_array()
poda parametre po arrayu. Kako pa ustvariš objekt in mu daš parametre iz arraya?

Upam da sem dovolj jasno napisal vprašanje :\
  • spremenil: talmai ()

OwcA ::

Če je število parametrov konstantno tako ne bi smelo biti težav, drugače pa, grdo, ampak delujoče, je z eval().
Druga možnost je spremeniti definicijo konstruktorja tako, da sprejme samo eno sprmenljivko, ki je polje parametrov.
Tretja (in najlepša) bi bili metarazredi, ampak PHP jih ne podpira, lahko pa narediš wraperje in potem malo packaš še z dedovanjem, da je stvar karseda generična.
Otroška radovednost - gonilo napredka.

talmai ::

Prva možnost se mi zdi zaenkrat najbolj izvedljiva. O drugi sem že premišljeval, ampak bo zadeva manj pregledna. Mi lahko tretjo možnost bolj podrobno opišeš?

Število parametrov ni konstantno.

Zgodovina sprememb…

  • spremenil: talmai ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317925 (8673) black ice
»

C# povezava forma in classa

Oddelek: Programiranje
172317 (1780) Miko55
»

[Java] Objekt poslan k metodi v kakšnem stanju?

Oddelek: Programiranje
211538 (985) shadeX
»

PHP in objektno programiranje (strani: 1 2 )

Oddelek: Programiranje
8512028 (10495) kivi113
»

c# class

Oddelek: Programiranje
342254 (1848) japol

Več podobnih tem