Avatar billede svoeber Nybegynder
02. marts 2003 - 15:02 Der er 10 kommentarer og
1 løsning

Overskrive tidligere funktion

Er det muligt at overskrive en funktion, der tidligere deklareret?
Jeg tænker om der findes en metode, hvor man kan "slette" en funktion, før man deklarerer en ny?

Fx.
function f() {echo "hej";}
[kode der sletter funktionen 'f']
function f() {echo "Hi";}
Avatar billede abpdk Nybegynder
02. marts 2003 - 15:05 #1
Hvorfor bruger du ikke bare: function f($str) { echo $str; }
Avatar billede svoeber Nybegynder
02. marts 2003 - 15:05 #2
Funktionen er et simpelt eksempel og ikke den funktion jeg skal bruge i praksis
Avatar billede abpdk Nybegynder
02. marts 2003 - 15:37 #3
I de fleste programmeringssprog kan man overloade funktioner, men jeg har aldrig hørt at man skulle kunne de-erklære en funktion. Hvis du nu smidder koden her kunne det være man kunne finde en omvej.
Avatar billede svoeber Nybegynder
02. marts 2003 - 15:41 #4
Problemet er, at jeg har en funktion der bliver kaldt og defineret i en fil jeg inkluderer.
Filen jeg inkluderer, kan jeg ikke ændre i, og derfor må jeg lave en ny udgave af funktionen, hvis jeg vil ændre på resultatet af funktionen.
Men her får jeg fejlbedsked, da man ikke kan re-declare en funktion.

Jeg overvejede så, om der fandtes en funktion ala "unset()" bare til funktioner.
Avatar billede svoeber Nybegynder
02. marts 2003 - 15:42 #5
Problemet er rettere:
Jeg henter et stort funktionsbibliotek ind i hovedfilen, og har brug for at ændre måden en af funktionerne opfører sig på. Men uden at ændre i funktionsbiblioteket.
Avatar billede abpdk Nybegynder
02. marts 2003 - 15:46 #6
Det er svært at komme med et bud på hvordan det kan gøres uden at se koden for de egentlige funktioner, men jeg vil stadig mene at du næsten er nødt til at overloade den aktuelle funktion.

Jeg har ikke læst PHP dokumentationen igennem (2000 sider!:), så jeg skal ikke kunne sige om der findes det du søger, men jeg har i hvert fald aldrig hørt om det.
Avatar billede barran_ Nybegynder
02. marts 2003 - 17:03 #7
Avatar billede svoeber Nybegynder
02. marts 2003 - 17:07 #8
Det virker vist kun på klasser
Avatar billede barran_ Nybegynder
02. marts 2003 - 17:47 #9
tja, men man kan have funktioner i klasser, og så vidt jeg så efter den korte skimning af siden skulle man bruge __call() til funktioner.
Avatar billede svoeber Nybegynder
02. marts 2003 - 19:51 #10
Ok, men der står også:
"As this is an experimental extension, not all things work. There is no __call() support currently, ..."
:)
Avatar billede svoeber Nybegynder
03. marts 2003 - 14:37 #11
Nå, det lader til, at det ikke er muligt.
Barra, lægger du et svar, så deler jeg point mellem dig og abpdk.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester