Method Overloading PHP

Tags:    php method overloading oop

Hej alle,

Jeg har siddet lidt og leget med php, og jeg savner rigtig meget method overloading i php (som man kender det fra C#, Java etc.) - Der er nogle workarounds, og jeg har kigget lidt på noget i stil med:

Fold kodeboks ind/udPHP kode 


Problemet for mig er bare, at dette jo ikke rigtig er overloading som jeg vil have det. Så jeg tænker, hvorfor ikke bare lave nogle metoder med forskellige navne, og kalde dem istedet.

Eller laver man en metode med noget som det her:

Fold kodeboks ind/udPHP kode 


Hvad er den mest gængse måde at gøre det på? Synes simpelt hen ikke jeg kan finde noget som jeg synes er tilfredsstillende at se på :I



2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Først lige nogle gæt på hvorfor der ikke er overloading i PHP.

1. Det er ikke alle der mener det forøger læsbarheden, hvilket er et kriterie der ligger meget højt indenfor udviklingsverden i denne tid.
2. Det ville nok forværre ydelsen. I sprog som C# og Java bliver metodekald bestemt ved compile-tid, hvor det så vidt jeg ved bliver bestemt ved kørselstid i PHP. Så jo flere overloads desto længere tid ville det tage at finde den rigtige metode.

Om du skal bruge forskellige metodenavne eller optionelle parametre afhænger af metoden.

Hvis parametretyperne ikke varierer mellem metoder eller de metoder med få parametere bare kalder dem med flere med nogle standardværdier så lav dem optionelle.

Hvis de variarer, f.eks. i den ene funktion er det første parameter et tal, i den anden en streng så giv dem forskellige navne, f.eks. noget lignende: getXById og getXByString.



PHP er typesvagt så det vil ikke være muligt at få den fulde overload oplevelse. Du kan dog gøre noget, men jeg er ikke sikker på, at det er en god idé:
Fold kodeboks ind/udKode 




t