*   >> Læs Uddannelse artikler >> science >> programming

Php Reference

Grundlæggende om PHP - Del 14 Indledning Dette er en del 14 af min serie, Grundlæggende om PHP. I PHP referencer er et middel til at få adgang til samme variabel indhold (værdi) med forskellige navne. Værdier (variabelt indhold) holdes i hukommelsespladser. En variabel identificerer en hukommelsesplacering. En reference bruges normalt, når du er mere interesseret i, hvad der er i en hukommelse placering og ikke variablen. PHP reference er forskellig fra reference i andre computer-sprog.

Som du læser denne artikel, undgå at gøre sammenligning med hvad du læser, eller hvad der findes i andre computer-sprog, som C, da der kan forvirre dig. Jeg har gjort mit bedste for at sætte dette i en logisk progressiv måde, så tager tingene, som jeg giver dig. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser.

Hukommelse Beliggenhed En hukommelse placering er et område i computerens hukommelse, der holder værdien af ​​en variabel. En teknik til at arbejde med en hukommelsesplads Overvej følgende erklæring: $ var = 5; Værdien 5 er i en hukommelsesplacering. Du kan bruge denne samme hukommelsesplads til at øge værdien af ​​5 til 8, ved at tilføje 3. Du ville gøre dette: $ var = $ var + 3; Hvad sker er dette: Computeren ved, at $ var identificerer hukommelsesplacering, har nummer 5.

For den rette operand af ovenstående redegørelse, at computeren går til hukommelsesplads identificeret ved $ var og tilføjer 3 til, hvad der er der. Hvad er der er 5. Når 3 indsættes, har du 8 i hukommelsen placering identificeret ved $ var. Placeringen med 8, som blev tildelt variablen $ var, stadig overdraget til den samme variabel. Langs linjen, intet ændret opgaven. Det samme princip anvendes for strenge, som i følgende eksempel: $ var = "en"; $ var = $ var. " to"; Bemærk her, at der i den anden meddelelse, der er en prik mellem $ var og "to".

Dette kaldes dot operatør; det slutter to strenge sammen. I den første opgørelse, $ var har værdien, "en". Variablen, $ var identificerer placeringen har, "et". I den anden meddelelse, for den højre operand tilsættes "to" (sluttede) i denne placering, til opnåelse af strengen, "en to". Identifikationen af ​​denne placering er ikke ændret. Så $ var stadig identificerer placeringen. Placeringen er stadig tildelt $ var. Så for at ændre indholdet af et sted, har vi brugt den samme placering i stedet for to forskellige steder.

Forskellige Memory Steder med forskellige variabler overveje følgende to på hinanden følgende udsagn: $ myVar = "Jeg er indholdet i en stor tekstfil fra harddisken, nu i hukommelsen."; $ Avar = "Jeg er indholdet i en stor tekstfil fra harddisken, nu i hukommelsen."; Du har to forskellige variable med forskellige navne, men med de samme strengværdier. En variabel identificerer en hukommelsesplacering. To forskellige variabler med to forskellige navne identificerer to forskellige lagerpladser, alt andet lige.

I ovenstående tilfælde er de to værdier, selvom er de samme, er i to forskellige hukommelser. Samme hukommelsesplacering for to forskellige variabler i PHP kan du gøre det samme hukommelsesplads har to forskellige variabler. De to forskellige variabler vil naturligvis identificere samme værdi. Overvej følgende fortløbende to udsagn: $ myVar = "Jeg er indholdet i en stor tekstfil fra harddisken, nu i hukommelsen."; $ hisVar = & $ myVar; For første sætning, du har en værdi tildeler variablen, $ myVar. I den anden meddelelse, er $ myVar Forud med & tegn inden de tildeles en ny variabel, $ hisVar.

& Er en operatør. I den anden meddelelse, den & operatør, forud for den første variabel, gør den anden variabel identificerer den samme hukommelse placering (samme værdi) som den første variabel. En vigtig ting at bemærke her er, at & $ myVar refererer til en hukommelsesplacering indhold. Du kan også sige, at & $ myVar refererer til værdien i hukommelsen placering. For den anden meddelelse, & $ myVar med &, kan betragtes som en reference, men $ hisVar kan ikke betragtes som en reference; please, acceptere dette. $ hisVar er en variabel, ikke en henvisning; bare acceptere dette.

& $ myVar er tildelt (ikke sidestilles) til $ hisVar og i løbet af de tildeles det gør $ hisVar identificere den samme hukommelse placering som $ myVar; acceptere dette. Accepter disse tre sætninger jeg lige har givet. Forsøger at forstå, hvorfor de er ligesom, der kan gøre dig til ikke at forstå PHP henvisninger. Nu, hvis du skriver, $ myVar = "mand"; eller $ hisVar = "kvinde"; Indholdet af samme hukommelse identificeret ved $ myVar samt $ hisVar ville ændre. Den første sætning ville ændre indholdet til "menneske", og den anden meddelelse ville ændre det til "kvinde".

Med henvisninger som sådan, både $ myVar og $ hisVar identificere den samme værdi (hukommelsesplacering). Ved hjælp af en reference uden Pre-erklæring eller opgave i det forrige afsnit, & $ myVar blev tildelt $ hisVar, og $ myVar blev allerede erklæret. Du kan bruge en reference uden forudgående erklæring eller opgave. En henvisning består af & efterfulgt af et variabelnavn. Variabelnavnet behøver ikke at eksistere før, som i ovennævnte tilfælde. I ovennævnte tilfælde, har du & $ myVar, hvor $ myVar eksisterede før. Du bruger sådanne referencer inden udtryk og udsagn.

Du kan ikke begynde en redegørelse med en sådan henvisning. Du kan ikke erklære en variabel med en sådan henvisning. Så du kan ikke gøre dette: & $ ref = "vis værdi"; //galt, når du har en reference som & $ ref i en kode segment, kan du tildele den til en variabel indirekte. Et argument, som er en variabel erklæres sted, kan have fået tildelt en reference, under et funktionskald. Noget lignende: $ theVar = myFn ($ var1); hvor $ var1 er en variabel erklæret et eller andet sted (ovenfor) i koden. Funktionen, myFn (), returnerer & $ ref under udførelsen, som er overdraget til $ theVar.

Vi kan sige, denne opgave er blevet gjort indirekte. En reference refererer til en hukommelsesplacering. Du kan bruge henvisningen til at gøre hvad du vil gøre med hukommelsen placering, såsom at ændre indholdet af hukommelsesplads. Du kan have tildelt indirekte henvisning til en variabel, og derefter bruge indholdet af hukommelsesplads, gennem variablen. I denne artikel indholdet af en hukommelse placering og værdi (bogstavelig), betyder det samme. Når du kender betydningen af ​​en reference; det er en fase af forståelse henvisninger. Den næste ting at gøre, er at lære at bruge det.

Læs videre. Ulempe ikke bruger en reference i visse situationer Forestil dig, at du har en tekstfil i en harddisk, og indholdet af denne fil er nu i hukommelsen. Du har måske dette indhold som en streng, tildeles en variabel, på normal vis, i din kode. Hvad du virkelig ønsker at gøre med så stort indhold fra en fil, er at ændre noget af sin tekst, slette nogle af dets tekst eller tilføje nogle nye tekst til indholdet. Efter at du gemmer indholdet tilbage, som en fil på harddisken, og du ikke længere har brug for indholdet i hukommelsen.

Følgende kode viser en måde at tilføje (add ultimo) tekst til sådant indhold (det har en ulempe): $ var1 = ". Jeg er indholdet i en stor tekstfil fra harddisken, nu i hukommelsen"; funktion appendFn ($ var2) {$ var2 = $ var2. "Det sidste tekst."; returnere $ var2; } $ Var1 = appendFn ($ var1); echo $ var1; ?> I begyndelsen af ​​koden, har du variablen, $ var1. Til denne variabel er tildelt en strengværdi. Denne strengværdi er kort, men lad det repræsenterer indholdet af en stor tekstfil. Dernæst har du den funktion, appendFn (). Denne funktion giver strengen, "Det sidste tekst.

" til strengen af ​​variablen, $ var1. Funktionen kaldes på følgende måde: appendFn ($ var1), hvor variablen, $ var1 sendes som argument. Funktionen selv har parameteren, $ var2. Når funktionen kaldes denne parameter identificerer værdien af ​​argumentet sendt. Denne parameter er faktisk en variabel forskellig fra $ var1. $ var2 holder værdien af ​​argumentet sendt af den kaldende erklæring. Så lige før funktionen udføres, har du to forskellige variabler, der identificerer den samme værdi.

Men ingen af ​​disse variable beskæftiger sig med henvisninger, så du har den samme værdi i to forskellige steder i hukommelsen. En af de steder identificeres ved $ var1, og den anden er identificeret ved $ var2. Denne status fortsætter indtil udgangen af ​​udførelsen af ​​programmet. Der er to udsagn i funktionen definition. Den første sætning tilføjer strengen, "Det sidste tekst." til værdien af ​​variablen, $ var2. Den anden erklæring returnerer værdien af ​​variablen, $ var2.

Funktionen kalder erklæring i koden (uden for funktionen definition) modtager denne værdi og re-tildeler den til variablen, $ var1. I denne kode, er der ikke referencer blevet officielt anvendt. Så de to variabler hver har sin egen hukommelse. En variabel er uden for funktionen definition, og den anden er inde i funktionen definition. Placeringen for variablen uden for funktionen definition, i første omgang har en strengværdi. Efter funktionskaldet, dette sted har et stykke snor, hvormed det.

Placeringen af ​​variable inde funktionsdefinitionen oprindeligt har strengen, at placeringen af ​​den variable uden har. Den anden sætning i funktionen definition tilføjer stykke snor til placeringen. Bemærk, at den ovenfor beskrevne teknik er blevet anvendt her. Eksistensen af ​​disse to steder er spild af hukommelse. Med henvisninger, kan disse to steder kan reduceres til en placering (se nedenfor). Nu hukommelse er altid knappe. Det er ligesom penge, uanset hvor meget du har, har du stadig grunde til at brug for flere penge.

I ovenstående kode, er hele hukommelsen ikke blevet anvendt økonomisk. Du er nødt til altid at forsøge at bruge så lidt hukommelse som du kan, når det er muligt. Vid, at brugen at indrykke fører til en økonomisk brug af hukommelse og forbedret effektiviteten af ​​din kode. Passerer en variabel ved reference Der er situationer, hvor du bare har brug for at henvise til en hukommelsesplacering, variablen for hukommelsen placering er ikke meget vigtigt. Ville det ikke være rart, hvis du havde en reference, der blot refererer til placeringen af ​​$ var1 variabel i ovenstående kode.

Du bruger henvisningen til føje stykke snor. Efter funktionen opkald (statement) og udførelse af funktionen, behøver du ikke referencen længere. På den måde vil du have bare en hukommelsesplacering at beskæftige sig med; ikke to som før. Så du spare hukommelse, og der er forbedret ydeevne. Følgende kode illustrerer dette (se forklaring nedenfor): $ var1 = "Jeg er indholdet i en stor tekstfil fra harddisken, nu i hukommelsen."; fungere appendFn (& $ ref) {$ ref = $ ref. "Det sidste tekst."; returnere $ ref; } $ Var1 = appendFn ($ var1); echo $ var1; ?> Koden og den forrige er ens.

Forskellen ligger i funktionen definition. Når funktionen kaldes, er variablen, $ var1 bestået som argument. Den parameter i funktionen er nu en reference. Den variable del ($ ref) i denne henvisning ikke tidligere erklæret. Denne reference er ikke tildelt til en ny variabel og vil aldrig blive overdraget, direkte (du vil aldrig have noget lignende, $ someVar = & $ ref). Det er dog indirekte tildelt $ var1 ved begyndelsen af ​​udførelsen af ​​funktionen. Så som funktionen udføres, både $ var1 og & $ ref betyder det samme hukommelsesplads.

Det stykke kode du overveje som en reference, begynder med &, efterfulgt af et variabelnavn, f.eks $ ref, som starter med $ underskrevet. Inde i funktionen definition, du bruger variabelnavnet del indledes med $ at tage fat på placeringen af ​​henvisningen er nævnt. Som jeg sagde ovenfor, efter at kende betydningen reference, er du nødt til at lære at bruge det. I denne kode, er $ ref inde i funktionen definition, til samme sted som $ var1 udenfor. Afkastet sætning bruger $ ref at returnere indhold (værdi) af hukommelsesplads.

Den bruger ikke & $ ref selvom & $ dommer er effektivt, hvad de funktionskald returnerer. Det sker her, at kilden og destinationen af ​​indholdet er de samme. Som du kan se, har vi brugt kun én hukommelsesplads i stedet for to (som i det tidligere tilfælde). Vi har opnået økonomi hukommelse og forbedret ydeevne. Funktion Returnering en reference I ovenstående kode, blev en reference returneret. Det er dog ikke alle de tidspunkter, hvor placeringen af ​​reference er den samme som af argumentet øjeblikkeligt.

Visse funktioner kan ikke have nogen parameter (så modtage noget argument), men du vil have det til at returnere en reference. Funktionen i følgende kode ikke modtager et argument. Funktionen returnerer en reference og i den kaldende sætning, er referencen indirekte tildelt til en variabel. funktion & Mormoner () {$ myVar = "en værdi"; returnere $ myVar; } $ TheVar = Mormoner (); echo $ theVar; ?>

Page   <<       [1] [2] [3] [4] [5] [6] [7] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.