05. juli 2006 - 21:01Der er
21 kommentarer og 1 løsning
Funktioner i php
Hej, Jeg har lige kastet mig ud i at bruge funktioner i PHP. Det har givet mange gode oplevelser, da det gør koden meget mere overskuelig.
Dog er der en ting jeg ikke kan hitte ud af, og det har ikke hjælpe at google emner, selvom man skulle tro der fandtes rigeligt stof om det.
Variablerne i disse funktioner irretere mig lidt, da jeg ikke kan trække variabler med ud af funktionen. Er der som i Java en måde hvorpå jeg kan få variablerne med mig?
Hvis du vil sende parametre med "by reference", kan du sætte et & foran variablen, som vist nedenstående, så ændrer variablen sig også unden for scope, hvis du ændrer den i funktionen.
Det betyder at du i stedet for at sende værdien med, sender selve variablen - så det du ændrer på den inde i funktionen, også er ændret når du kommer ud af den igen, uden at du skal gøre noget for den.
Det sparer på hukommelsen hvis det er en stor værdi vi har med at gøre (såsom en lang tekst-streng), og er også meget nyttigt som et alternativt til return, eller en metode til at returnere mere end en variabel uden at skulle bruge et array.
Korrekt. Fordelen er at du sparer på hukommelsen (da den ikke skal kopiere indholdet) - det kan godt være vigtigt i visse tilfælde - samt at du indirekte kan returnere mere end en variabel uden at skulle til at returnere et array og flytte variablerne ud.
Det vil sige at du eksempelvis kunne lave en funktion der ser sådan ud:
function removeelement(&$arr,$index) { $result=$arr[$index]; unset($arr[$index]); return $result; }
der, når den kaldes, fjerner et element fra et array og returnerer det. Eksempel på hvordan det virker:
Der er flere fordele, især hvis du vil have en funktion der skal kunne gøre flere ting på en gang function test(&$startyear, &$endyear) { $startyear += 10; $endyear += 10; $diff = $endyear - $startyear return $diff; } Den giver dig tre forskellige nye værdier...
Og du mener: function addOneYear(&$year) { $year += 1; }
Tak for svar. (Lukker da Jaw ønsker ikke point:Kommentar: jaw 05/07-2006 21:11:31)
Synes godt om
Ny brugerNybegynder
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.