perusteet PHP - Osa 14 Johdanto Tämä on osa 14 minun sarja, perusteet PHP. PHP viittaukset ovat keino päästä saman muuttujan sisältöä (arvo) eri nimillä. Arvot (vaihteleva pitoisuus) pidetään muistipaikkaa. Muuttuja tunnistaa muistipaikka. Viittaus käytetään yleensä kun olet enemmän kiinnostunut siitä, mitä on muistipaikka eikä muuttuva. PHP viittaus eroaa viittaus muilla ohjelmointikieliä. Kuten olet lukenut tämän artikkelin, välttää verrattuna mitä olet lukenut tai mitä on olemassa muilla ohjelmointikieliä, kuten C, koska jotka voivat hämmentää sinua.
Olen tehnyt parhaani laittaa tämä loogisesti etenevä tavalla, joten ota asioita kuin minä annan sinulle. Huomautus: Jos et näe koodia tai jos luulet jotain puuttuu (rikki linkki, kuva poissa), vain yhteyttä minuun [email protected]. Eli minuun yhteyttä pienintäkään ongelmaa olet mitä luet. Muistipaikkojen muistipaikka on alue tietokoneen muistiin, joka pitää arvoa muuttujan. Tekniikka työskennellä yksi Memory Sijainti Mieti seuraavan lausuman: $ var = 5; Arvo 5 on muistipaikka. Voit käyttää tätä samaa muistipaikka lisätä arvoa 5-8, lisäämällä 3.
Voisitte tehdä tämän: $ var = $ var + 3; Mitä tapahtuu on tämä: tietokone tietää, että $ var tunnistaa muistipaikka on numero 5. oikea operandi edellä julkilausuman, tietokone menee muistipaikkaan tunnistetaan $ var ja lisää 3 mitä on olemassa. Mitä siellä on 5. Kun 3 lisätään, sinulla on 8 muistipaikka tunnistetaan $ var. Sijainti, jossa on 8, joka on määritetty muuttuja $ var, on edelleen määritetty samaan muuttujaan. Pitkin linjaa, mikään ei muuttunut tehtävä. Samaa periaatetta sovelletaan jouset, kuten seuraavassa esimerkissä: $ var = "yksi"; $ Var = $ var.
" kaksi"; Huomaa, täällä että toinen ilmoitus, on piste välillä $ var ja "kaksi". Tätä kutsutaan piste operaattori; se yhdistää kaksi langat yhteen. Ensimmäisessä lausunnossaan, $ var on arvo, "yksi". Muuttuja, $ var tunnistaa sijainnin ottaa, "yksi". Toisessa lausunnossaan, että oikeus operandia "kaksi" lisätään (yhdistetty) tähän sijainti, antaa merkkijonon, "yksi kaksi". Tunnistaminen tämä paikka ei ole muuttunut. Joten $ var edelleen tunnistaa sijainnin. Sijainti on edelleen määritetty $ var. Niin, muuttaa sisältöä sijainti, olemme käyttäneet saman sijainnin sijasta kahteen eri paikkaan.
Eri muistipaikkaa kanssa eri muuttujien Tarkastellaan seuraavaa kahden peräkkäisen julkilausumat: $ myVar = "Olen sisällön suuren tekstitiedoston kiintolevyltä, nyt muistissa."; $ Avar = "Olen sisällön suuren tekstitiedoston kiintolevyltä, nyt muistissa."; Sinulla on kaksi eri muuttujien eri nimillä mutta sama merkkijono arvot. Muuttuja tunnistaa muistipaikka. Kaksi eri muuttujia kahdella eri nimellä yksilöidään kaksi eri muistipaikkaa, kaikki pysyessä. Edellä mainitussa tapauksessa, nämä kaksi arvoa, vaikka ovat samat, ovat kahdessa eri muistipaikkoihin.
Sama muistipaikka kaksi eri muuttujien PHP voit tehdä saman muistipaikka on kaksi eri muuttujaa. Kaksi eri muuttujaa tietenkin tunnistaa sama arvo. Harkitse seuraavat peräkkäiset kaksi lausumaa: $ myVar = "Olen sisällön suuri tekstitiedoston kiintolevyltä, nyt muistissa."; $ HisVar = & $ myVar; Ensimmäistä selvitys sinulla arvo määrittää muuttujan, $ myVar. Toisessa lausunnossaan, $ myVar edeltää kanssa ja merkki ennen kuin heille annetaan uusi muuttuja, $ hisVar. & On operaattori.
Toisessa lausunnossaan, ja operaattori, ennen ensimmäistä muuttuja, tekee toinen muuttuja tunnistaa sama muistipaikka (sama arvo) kuin ensimmäinen muuttuja. Tärkeä asia huomata tässä on, että & $ myVar viittaa muistipaikka sisältöä. Voit myös sanoa, että & $ myVar viittaa arvon muistipaikkaan. Toisen lausuman, & $ myVar, jossa &, voidaan pitää viitteenä, mutta $ hisVar ei voida pitää vertailukohtana; ota hyväksyä tätä. $ HisVar on muuttuja, ei viittaus; vain hyväksyä tämä.
& $ MyVar annetaan (ei rinnastaa) ja $ hisVar ja aikana heille annetaan se tekee $ hisVar tunnistaa sama muistipaikka kuin $ myVar; hyväksyy tämän. Hyväksyä nämä kolme lausetta Olen juuri antanut. Yritetään ymmärtää, miksi ne ovat niin saattaa tehdä sinut ei ymmärtää PHP viittaaminen. Nyt, jos kirjoitat, $ myVar = "mies"; tai $ hisVar = "nainen"; Sisältöä samaan muistipaikkaan tunnistetaan $ myVar sekä $ hisVar muuttuisi. Ensimmäisessä lausumassa muuttaisi sisällön "mies" ja toinen selvitys muuttuisi sen "nainen".
Jossa viitataan sellaisenaan, sekä $ myVar ja $ hisVar tunnistaa sama arvo (muistipaikka). Käyttämällä Viite ilman Pre-ilmoituksen tai toimeksianto edellisessä osassa, ja $ myVar määrättiin $ hisVar, ja $ myVar oli jo julistettu. Voit käyttää viittauksen ilman ennalta ilmoituksen tai tehtävän. Viittaus koostuu ja seuraa vaihteleva nimi. Muuttujan nimi ei ole olemassa ennen, kuten edellä mainitussa tapauksessa. Edellä mainitussa tapauksessa, sinulla on & $ myVar, jossa $ myVar olemassa ennen. Käytät tällaiset viittaukset sisällä ilmaisuja ja lausuntoja.
Et voi aloittaa julkilausuma tällainen viittaus. Et voi julistaa muuttuja tällainen viittaus. Joten et voi tehdä tätä: & $ ref = "jotain arvoa"; //Väärässä Kun olet viite kuten & $ ref koodisegmentti, voit määrittää sen muuttujaan epäsuorasti. Argumentti, joka on muuttuja julistettu jossain, ehkä sille viittaus aikana funktiokutsu. Jotain: $ theVar = myFn ($ Muutt1); jossa $ Muutt1 on muuttuja julistettu jossain (edellä) koodi. Toiminto, myFn (), palauttaa ja $ tuomarille suorituksen aikana, joka on määrätty $ theVar. Voimme sanoa, tämä tehtävä on tehty epäsuorasti.
Viittaus tarkoittaa muistipaikka. Voit käyttää viittauksen tehdä mitä haluat tehdä muistipaikka, kuten sisällön muuttamiseksi muistipaikan. Voit määrittänyt välillisesti viittaus muuttuja, ja sitten käyttää sisältöä muistipaikan, muuttujan avulla. Tässä artikkelissa sisällön muistipaikka ja arvo (kirjaimellinen), tarkoittavat samaa asiaa. Kun tiedät merkitys viite; että on yksi vaihe ymmärrystä viittaaminen. Seuraava asia tehdä, on opetella käyttämään sitä. Jatka lukemista.
Haitta ei käytä Reference eräissä erityistapauksissa Kuvittele, että olet tekstitiedoston kiintolevy, ja sisältö tiedosto on nyt muistissa. Saatat olla tästä sisällöstä merkkijono, määritetty muuttuja, normaalilla tavalla, koodissa. Mitä todella haluat tehdä niin suuria tiedostojen sisältöä, on muuttaa joitakin sen tekstin, poista joitakin sen tekstin tai liittää joitakin uusia tekstiä sisältöä. Tämän jälkeen tallennat sisältöä takaisin, koska tiedosto kiintolevylle ja sinun ei enää tarvitse sisällön muistiin.
Seuraava koodi näyttää yksi tapa liittää (lisätä lopussa) teksti tällaiseen sisältöön (se on haitta): $ var1 = "Olen sisällön suuren tekstitiedoston kiintolevyltä, nyt muistissa."; toiminto appendFn ($ var2) {$ var2 = $ Muutt2. "Viimeinen teksti."; palata $ Muutt2; } $ Muutt1 = appendFn ($ Muutt1); echo $ Muutt1; ?> Alussa koodin, sinun on muuttuja, $ Muutt1. Tähän muuttuja on määritetty merkkijonoarvo. Tämä merkkijonoarvo on lyhyt, mutta anna sen edustavat sisällön suuren tekstitiedoston. Seuraavaksi sinun on toiminto, appendFn (). Tämä toiminto lisää merkkijonon, "viimeinen teksti.
" on merkkijono muuttuja, $ Muutt1. Tätä toimintoa kutsutaan seuraavasti: appendFn ($ Muutt1) missä muuttuja, $ var1 lähetetään argumentti. Toiminto itsessään on parametri, $ Muutt2. Kun toiminto on nimeltään, tämä parametri tunnistaa arvo argumentin lähetetty. Tämä parametri on todella vaihteleva erilainen $ Muutt1. $ Var2 omistaa arvo argumentin lähettämän kutsuvan julkilausuman. Joten juuri ennen toiminto suoritetaan, sinulla on kaksi eri muuttujien tunnistaa sama arvo. Kuitenkaan mikään näistä muuttujista käsittelee löytymistä, joten sinulla on sama arvo kahteen eri paikkaan muistiin.
Yksi paikoista tunnistetaan $ var1 ja toinen tunnistetaan $ var2. Tämä tila jatkuu loppuun ohjelman suorituksen. On kaksi lausumaa funktion määritelmän. Ensimmäisessä lausumassa lisää merkkijono, "viimeinen teksti." sen muuttujan arvo, $ Muutt2. Toinen lausuma palauttaa muuttujan arvo, $ Muutt2. Toiminto soittamalla toteamus koodi (ulkopuolella funktion määritelmää) vastaanottaa tämän arvon ja uudelleen määrittää sen muuttujan $ Muutt1. Tässä koodi, ei linkitykset on virallisesti käytetty. Joten kaksi muuttujaa jokaisella on oma muistipaikka.
Yksi muuttuja on ulkopuolella funktion määritelmää, ja toinen on sisällä funktion määritelmän. Paikka muuttujan ulkopuolella funktion määritelmää, aluksi on merkkijonoarvo. Kun toiminto soittaa, tämä paikka on narusta lisätään siihen. Paikka muuttujan sisällä funktion määritelmää aluksi on merkkijonon sijainti muuttujan ulkopuolella on. Toinen toteamus funktion määritelmää lisää narua paikkaan. Huomaa, että tekniikka edellä kuvattu on käytetty tässä. Näiden kahdella paikoista on jätettä muistia. Kanssa linkitykset, nämä kahdessa paikassa voidaan vähentää yhteen paikkaan (katso alla).
Nyt muisti on aina niukasti. Se on kuin rahaa, ei väliä kuinka paljon sinulla on, sinulla on vielä syytä tarvitset enemmän rahaa. Edellä koodi, koko muisti ei ole käytetty taloudellisesti. Sinun täytyy aina yrittää käyttää niin vähän muistia kuin voit, kun mahdollista. Tiedä, että käyttö löytymistä johtaa taloudelliseen käyttöön muistia ja parantaa suorituskykyä koodia. Syöttäminen muuttujan Viite On tilanteita, kun sinun tarvitsee vain viitata muistipaikkaan muuttujan muistipaikka ei ole kovin tärkeää.
Eikö olisi mukavaa, jos sinulla on ollut viite, joka yksinkertaisesti viittaa sijainnin $ Muutt1 muuttuja edellä koodi. Käytät viittaus liittää narusta. Kun toiminto soittaa (lausunto) ja toteutus toiminnon, et tarvitse viite enää. Näin sinulla on vain yksi muistipaikka käsitellä; ei kaksi kuin ennen. Joten voit säästää muistia ja on parempi suorituskyky. Seuraava koodi kuvaa tätä (katso selitys jäljempänä): $ var1 = "Olen sisällön suuren tekstitiedoston kiintolevyltä, nyt muistissa."; toimiakseen appendFn (& $ viite) {$ tuomari = $ viite. "Viimeinen teksti.
"; palata $ viite; } $ Muutt1 = appendFn ($ Muutt1); echo $ Muutt1; ?> Koodi ja edellinen ovat samankaltaisia. Ero on funktion määritelmän. Kun toiminto on nimeltään, muuttuja, $ var1 on muuttujana. Parametri toiminto on nyt viittaus. Muuttuva osa ($ ref) Tämän viittaus ei ole aikaisemmin ilmoitettu. Tämä viittaus ei ole määritetty uuden muuttujan ja koskaan osoitetaan, suoraan (sinun ei tarvitse mitään vastaavaa, $ someVar = & $ viite). Kuitenkin, se on epäsuorasti osoitettu $ var1 alussa toiminnon suorittamisen.
Jotta toiminto suoritetaan, sekä $ var1 ja & $ tuomari tarkoittavat samaa muistipaikka. Koodinpätkä pidätte apuna, alkaa ja sen jälkeen muuttujan nimi, esimerkiksi $ Tuomari, joka alkaa $ allekirjoitettu. Sisällä toiminto määrittelyissä käytetään muuttujan nimi osaa edeltää $ puuttua sijainnin mainitsemista viite. Kuten sanoin edellä, kun tietää merkitys viittaus, sinun täytyy opetella käyttämään sitä. Tässä koodi, $ tuomari sisällä toiminto määritelmä viittaa samaan paikkaan kuin $ Muutt1 ulkopuolella. Return-lauseita käyttää $ tuomari palauttaa sisältöä (arvo) muistipaikan.
Se ei käytä & $ Tuomari vaikka & $ tuomari on tehokkaasti mitä funktiokutsun palaa. Se tapahtuu täällä, että lähde ja kohde sijainti sisällön ovat samat. Kuten näette, olemme käyttäneet vain yksi muistipaikka kahden sijasta (kuten edellisessä tapauksessa). Olemme saavuttaneet talouden muistia ja parantaa suorituskykyä. Tehtävä palauttaminen viittaus edellä koodi, viite palautettiin. Kuitenkin, se ei ole kaikki ajat, jolloin sijainti viite on sama kuin argumentti. Jotkut toiminnot eivät ehkä ole parametri (niin saa mitään väitettä), mutta mitä haluaisi sen palata viite.
Toiminto seuraava koodi ei saa argumentti. Funktio palauttaa viittauksen ja kutsuvan lausunto, viittaus on epäsuorasti määritetty muuttujaan. toiminto & AFN () {$ myVar = "arvo"; palata $ myVar; } $ TheVar = AFN (); echo $ theVar; ?>
net