Referenciákat? Php - hogyan működnek, és mikor kell használni őket, Web design - tervezés, fejlesztés és
Mi az a referencia PHP-ben?
Hozzárendelése linkek PHP
Itt létrehoztunk egy változót, amelynek értéke $ a myVar „Hello!”. Aztán rendelt érték egy másik változó $ anotherVar. Ez a példány az érték az első változó a második. Aztán változtatni a tárolt érték $ anotherVar hogy „Viszlát.”
Mivel a két változó független, a myVar $ még mindig megtartja az eredeti érték ( „Hello!”), Amely hajt végre az oldalon. Eddig minden jól megy. Most megváltoztathatja a beállítható például a változó $ értéke myVar $ anotherVar. link segítségével. helyett az értéket. Ehhez egyszerűen írjon egy jel ( „”) egyenlőségjel után:
Most már láthatja, hogy a $ a myVar is változott „Viszlát!” Miért történt ez? Ahelyett rendelni az érték a myVar változó $ $ anotherVar - ami egyszerűen hozzon létre két független példányban azonos értékű - tettük a $ anotherVarssylkoy értéke $ myVar. Más szóval, a $ myVar és $ anotherVar mind a pont ugyanazt az értéket. Amikor tehát rendelve egy új értéket, $ anotherVar értéke a myVar $ is megváltozott.
Vegyük észre, hogy meg tudnánk változtatni az értéket a myVar on $ „Viszlát” helyett a változó $ anotherVar és az eredmény lenne pontosan ugyanaz. Két változó lényegében azonosak.
Eltávolítása hivatkozások PHP
Akkor távolítsa el a kapcsolatot a PHP hatástalanított () függvény töröl egy normális változó. Ha töröl egy linket, akkor egyszerűen távolítsa el a kapcsolat maga helyett a referenciaérték:
Az érték a memóriában marad, amíg el nem távolítja el az összes utalást, beleértve az eredeti változót:
Átadás változókat a link funkció
Linkek nem működnek, ha át őket érveket funkciókat. Általában, ha át egy változó függvénye,
függvény megkapja egy példányát a változó értékeit. Átadás a változó referencia funkciója vonatkozhat ez a változó,
de ami még fontosabb, hogy változtatni az eredeti változót.
Hogy telik egy érv hivatkozással, meg az & jelet, mielőtt a neve a függvény paraméter:
Most, minden alkalommal, amikor hívást myfunc () és a PHP változó áttételű átutalja a változó referencia, hanem a változó értékét. Vegyünk egy egyszerű példát elhaladó jelzet:
goodbye ($ myVar); echo $ myVar; // Kimenet „Viszlát”
Azt nézd meg létrehozásával változó $ myVar. kezdeti érték „Hello!”, amelyben goodbye () függvény egy paramétert $ myVar. telt hivatkozunk. viszlát funkció (megváltoztatni a tárolt érték $ a myVar „Viszlát.”
Így egy átviteli kapcsolat, amikor meg akarja változtatni egy olyan változót mint argumentum a funkciót. Egyszerűen nem igaz. By the way, nem lehet a kísértés, hogy írjon-jel előtt az érv a függvényhívás:
Felvétel és jelet jel előtt a paraméter a függvény definíciójában elegendő, hogy átmenjen egy változót referencia. Sok funkciók beépített PHP-passz érvek hivatkozunk. Például, a sort () függvény egy referencia rendezni a tömb, úgy, hogy ez a funkció lehet változtatni a sorrendjét a tömb elemeinek.
Visszatérés linket a funkciók
Ha átadhatók változókat referenciaként egy függvény, akkor ugyanaz lehet Egy függvény által visszaadott hivatkozásokat. Ehhez levelet az & jelet, mielőtt a neve a függvény definíciója. Azt is meg kell írni a jel (=) jelre, ha hozzárendelése változó funkció, különben egyszerűen értéket rendelni, nem egy hivatkozást.
Ebben a példában getNumWidgets () függvény megkeresi a globális változó $ numWidgets és visszaad egy utalás. Akkor hívjuk getNumWidgets (). amely megtartja linkek vissza $ numWidgetsRef, és csökkenti az értéket a változó által mutatott $ numWidgetsRef. Ez ugyanaz az érték által mutatott változó $ numWidgets, amint látható az eredménye visszhang funkciót.
Lehet, hogy nem használ gyakran visszatér a kapcsolat, mivel az átviteli kapcsolat, de ez a módszer hasznos lehet bizonyos helyzetekben, például ha azt szeretné, hogy megteremtse a keresési funkció (vagy osztály módszer), amely változó (vagy tulajdonában osztály), és visszatér utalás egy változó vagy egy tulajdonság, hogy a hívó fél tudja ellenőrizni a változó vagy tulajdonság.
Változó értékek a mondatban foreach hivatkozással PHP
Egy másik hasznos példa a linkeket, hogy módosítsa a tömb elemeinek egy foreach ciklus. A hagyományos tsiklaforeach dolgozik Skopje tömb értékeit, így ha annak értéke nem lesz hatással az eredeti tömb. Például, próbálja nagybetűs név sávok a tömb keresztül foreach ciklus:
Ez a következő látható:
Mint látható, az eredeti tömb nem változik eredményeként egy foreach ciklus. Azonban, ha véget és jelet, mielőtt a sáv az üzemeltető $ foreach $ sáv válik hivatkozás az eredeti tömb elem, hanem egy másolatot. Akkor tudjuk alakítani a tömb elemeit nagybetű:
A kód működik, mint az várható volt, az alábbiak szerint:
Egy másik módja, hogy módosítsa az értékeket a tömb a ciklus használni a ciklus helyett foreach.
Amikor hivatkozásokat használja automatikusan
Tehát, ha tanult négy módon lehet létrehozni egy kapcsolatot közvetlenül:
- hozzárendelése linkek
- Referenciakénti
- Vissza Link
- Készítsen egy linket egy foreach ciklus
Ezen kívül vannak olyan esetek, amikor a PHP automatikusan létrehozza linkeket. A legtöbb esetben, akkor nem kell, de tudatában kell lennie ezzel a lehetőséggel hasznos lesz!
Referenciák PHP használatával global kulcsszó
Amikor a global kulcsszó a függvény belsejében hozzáférni egy globális változót, majd, sőt, akkor hozzon létre egy linket a globális változó array $ GLOBALS.
Nem ugyanaz, mint a következő példa:
Irodalom PHP használatakor a kulcsszó $ this
Amikor objektum-orientált kódot gyakran használt kulcsszó $ this. Ha a $ this objektumon belül módszer, kövesse az utasításokat az aktuális objektumot. Érdemes megjegyezni, hogy a $ this mindig hivatkozhat a tárgy, hanem egy másolatot.
A megszerzett tárgyak
Eltérően más típusú változó, amikor hozzá, át vagy vissza a tárgy visszatér utalás a tárgy, hanem egy másolatot. Általában át a függvény vagy metódus dolgozik, maga a tárgy, nem annak másolatát.
Bizonyos esetekben, ha meg szeretné, hogy egy példányt egy tárgy, akkor a kulcsszó
klón. Tény, hogy minden sokkal vékonyabb. Amikor létrehoz egy változót objektumot, akkor tartalmaz egy mutatót egy objektum a memóriában, hanem maga a tárgy. Ha hozzá vagy át a változó, akkor tulajdonképpen létre egy másolatot a változó. De egy másolat is egy mutató az objektum - mindkét példányát a holtponton, hogy ugyanazt a tárgyat. Így a legtöbb esetben, akkor hozzon létre kapcsolatokat.
Ez a blog olvasni sokan
- olvasni és te!