*   >> Lezen Onderwijs artikelen >> science >> programming

Php Reference

grondbeginselen van PHP - Deel 14 Inleiding Dit is deel 14 van mijn reeks, Basis van PHP. In PHP referenties zijn een middel om toegang te krijgen tot dezelfde variabele inhoud (waarde) met verschillende namen. Waarden (variabele inhoud) worden bewaard in het geheugen locaties. Een variabele identificeert een geheugen locatie. Een verwijzing wordt algemeen gebruikt bij meer geïnteresseerd in wat in een geheugenlocatie en niet variabel. PHP referentie verschilt van verwijzing in andere computertalen.

Als je dit artikel leest, voorkomen dat in vergelijking met wat je leest of wat er in andere computer talen, zoals C, zoals die kunnen verwarren. Ik heb mijn best gedaan om dit op een logische progressieve manier te zetten, dus dingen nemen zoals ik u. Opmerking: Als u de code niet kunt zien of als u denkt dat er iets ontbreekt (gebroken link afbeelding afwezig), neem dan contact met mij op [email protected]. Dat wil contact met mij op voor het geringste probleem dat je hebt over wat je aan het lezen bent.

Geheugen Locatie Een geheugen locatie is een gebied in het computergeheugen dat de waarde van een variabele houdt. Een techniek om te werken met een Memory Locatie Beschouw de volgende verklaring: $ var = 5; De waarde 5 is in een geheugen locatie. U kunt gebruik maken van dezelfde geheugen locatie om de waarde van 5 te verhogen tot 8, door het toevoegen van 3. U zou dit doen: $ var = $ var + 3; Wat er gebeurt is dit: De computer weet dat $ var identificeert het geheugen locatie die het nummer 5.

Voor de rechter operand van de bovenstaande verklaring heeft, de computer gaat naar het geheugen locatie geïdentificeerd door $ var en voegt 3 tot wat er is. Wat is er 5. Als 3 wordt toegevoegd, u 8 in het geheugen locatie geïdentificeerd door $ var. De locatie met 8, dat is toegewezen aan de variabele $ var, blijft toegewezen aan dezelfde variabele. Langs de lijn, niets veranderd de opdracht. Hetzelfde principe wordt toegepast om strings, zoals in het volgende voorbeeld: $ var = "een"; $ var = $ var. " twee"; Merkt hier dat in de tweede verklaring, is er een punt tussen de $ var en "twee".

Dit wordt de puntoperator; Het voegt twee tekenreeksen samen. In de eerste verklaring, $ var heeft de waarde, "een". De variabele, $ var identificeert de locatie hebben, "één". In de tweede verklaring voor de rechter operand "twee" wordt toegevoegd (samengevoegd) in deze plaats, om de string, "een twee" geven. De identificatie van deze locatie is niet veranderd. Dus $ var geeft nog steeds de locatie. De locatie is nog steeds toegewezen aan $ var. Dus, om de inhoud van een locatie wijzigen, hebben we dezelfde locatie plaats van twee verschillende locaties gebruikt.

Verschillende geheugen locaties met verschillende variabelen Beschouw de volgende twee opeenvolgende uitspraken: $ myVar = "Ik ben de inhoud van een groot tekstbestand van de harde schijf, die nu in het geheugen."; $ Avar = "Ik ben de inhoud van een groot tekstbestand van de harde schijf, die nu in het geheugen."; Je hebt twee verschillende variabelen met verschillende namen, maar met dezelfde reeks waarden. Een variabele identificeert een geheugen locatie. Twee verschillende variabelen met twee verschillende namen identificeert twee verschillende geheugen locaties, alles gelijk.

In het bovenstaande geval, de twee waarden, hoewel hetzelfde zijn, zijn in twee verschillende geheugenlocaties. Hetzelfde geheugen locatie voor twee verschillende variabelen In PHP kun je hetzelfde geheugen locatie maken hebben twee verschillende variabelen. De twee variabelen uiteraard identificeren dezelfde waarde. Beschouw de volgende opeenvolgende twee verklaringen: $ myVar = "Ik ben de inhoud van een groot tekstbestand van de harde schijf, die nu in het geheugen."; $ hisVar = & $ myVar; Voor de eerste verklaring heb je een waarde toe te wijzen aan de variabele, $ myVar.

In de tweede verklaring, wordt $ myVar voorafgegaan met de & teken alvorens te worden toegewezen aan een nieuwe variabele, $ hisVar. & Is een operator. In de tweede instructie, en de operator, voorafgaand aan de eerste variabele, maakt de tweede variabele identificeert dezelfde geheugenlocatie (gelijkwaardig) de eerste variabele. Een belangrijk ding om hier op te merken is dat & $ myVar verwijst naar een geheugen locatie content. Je kunt ook zeggen dat & $ myVar verwijst naar de waarde in het geheugen locatie.

Voor de tweede instructie, en $ myVar met en kan worden beschouwd als een referentie, maar $ hisVar kan niet worden beschouwd als een referentie; alsjeblieft, accepteren. $ hisVar is een variabele, niet een referentie; gewoon accepteren dit. & $ myVar is toegewezen (niet gelijkgesteld) naar $ hisVar en in de loop van wordt toegewezen maakt $ hisVar identificeren hetzelfde geheugen locatie als $ myVar; accepteren. Accepteer deze drie zinnen heb ik zojuist gegeven. Proberen te begrijpen waarom ze zijn als dat zou kunnen maken je niet om PHP referencing begrijpen.

Nu, als u typt, $ myVar = "mens"; of $ hisVar = "vrouw"; De inhoud van dezelfde geheugenlocatie die door $ myVar als $ hisVar zou veranderen. De eerste verklaring zou het gehalte aan "man" en de tweede verklaring te veranderen zou het om "vrouw" te veranderen. Met verwijzingen als zodanig, zowel $ myVar en $ hisVar identificeren dezelfde waarde (geheugen locatie). Met behulp van een referentie zonder Pre-aangifte of Opdracht In het vorige deel, en $ myVar werd toegewezen aan $ hisVar en $ myVar was al verklaard. U kunt een verwijzing zonder pre-aangifte of opdracht te gebruiken.

Een verwijzing bestaat uit & gevolgd door de naam van een variabele. De variabele hoeft niet vóór bestaan, zoals in het bovenstaande geval. In het bovenstaande geval, je hebt & $ myVar, waarbij $ myVar bestond vóór. U gebruikt dergelijke verwijzingen in expressies en statements. U kunt een verklaring met een dergelijke verwijzing niet beginnen. Je kan niet verklaren een variabele met een dergelijke verwijzing. Dus je kunt dit niet doen: & $ ref = "enige waarde"; //verkeerd Wanneer u een referentie als & $ ref in een code segment, kunt u indirect toe te wijzen aan een variabele.

Een argument, dat een variabel ergens verklaard, zou het toegewezen referentie tijdens een functieaanroep. Zoiets als: $ Thevar = myFn ($ var1); waarbij $ Var1 een variabele gedeclareerd ergens (boven) in de code. De functie, myFn (), keert terug en $ ref tijdens de uitvoering, die wordt toegewezen aan $ Thevar. We kunnen zeggen, deze opdracht is indirect gedaan. Een verwijzing naar een geheugen locatie. U kunt de referentie gebruiken om te doen wat je wilt doen met het geheugen locatie, zoals het wijzigen van de inhoud van het geheugen locatie.

Je kunt indirect hebt toegewezen de verwijzing naar een variabele, en vervolgens de inhoud van het geheugen plaats, door middel van de variabele. In dit artikel wordt de inhoud van een geheugen locatie en waarde (letterlijke), hetzelfde betekenen. Als je weet dat de betekenis van een referentie; dat is een fase van begrip referencing. De volgende ding om te doen is om te leren hoe het te gebruiken. Lees verder. Nadeel van het niet gebruiken van een referentie in bepaalde situaties Stel dat u een tekstbestand op een harde schijf hebben, en de inhoud van dit bestand is nu in het geheugen.

Misschien deze inhoud als een tekenreeks, toegewezen aan een variabele, op de normale manier in de code. Wat je echt wilt doen met zulke grote inhoud van een bestand, is om een ​​deel van de tekst te veranderen, schrappen sommige van zijn tekst of voeg een aantal nieuwe tekst om de inhoud. Daarna kunt u de inhoud terug te slaan als een bestand op de harde schijf en u niet meer de inhoud in het geheugen nodig. De volgende code toont een manier om te voegen (toevoegen aan het eind) tekst naar dergelijke inhoud (het heeft een nadeel): $ var1 = ".

Ik ben van de inhoud van een groot tekstbestand van de harde schijf, die nu in het geheugen"; functie appendFn ($ var2) {$ var2 = $ var2. "De laatste tekst."; terug $ var2; } $ Var1 = appendFn ($ var1); echo $ Var1; ?> Aan het begin van de code, heb je de variabele $ Var1. Om deze variabele wordt toegewezen een string waarde. Deze tekenreekswaarde is kort, maar laat het de inhoud van een groot tekstbestand vertegenwoordigen. Vervolgens moet je de functie, appendFn (). Deze functie voegt de string, "De laatste tekst." de reeks van de variabele $ Var1.

De functie wordt als volgt genoemd: appendFn ($ var1) waarbij de variabele $ var1 als argument wordt verzonden. De functie zelf heeft de parameter $ var2. Wanneer de functie wordt aangeroepen, deze parameter geeft de waarde van het argument verzonden. Deze parameter is eigenlijk een variabele afwijkt van $ Var1. $ var2 houdt de waarde van het argument gestuurd door de oproepende verklaring. Zo vlak voor de functie wordt uitgevoerd, hebt u twee verschillende variabelen identificeren van dezelfde waarde.

Echter, geen van deze variabelen is het omgaan met verwijzingen, zodat u dezelfde waarde op twee verschillende locaties in het geheugen. Een van de plaatsen wordt geïdentificeerd door $ Var1 en de andere wordt geïdentificeerd door $ var2. Deze status gaat door tot het einde van de uitvoering van het programma. Er zijn twee verklaringen in de functie-definitie. De eerste verklaring voegt de string, "de laatste tekst." de waarde van de variabele $ var2. De tweede verklaring geeft de waarde van de variabele $ var2.

De functie aanroepen verklaring in de code (buiten de functie-definitie) ontvangt deze waarde en opnieuw wijst deze toe aan de variabele, $ Var1. In deze code, is er geen verwijzingen officieel gebruikt. Zodat de twee variabelen die elk heeft zijn eigen geheugen locatie. Een variabele buiten de functie definitie en de andere binnen de functie definitie. De locatie voor de variabele buiten de functie-definitie, heeft in eerste instantie een string waarde. Na de functie oproep, deze locatie heeft een touwtje aan toegevoegd.

De locatie voor de variabele binnen de functie definitie heeft aanvankelijk de tekenreeks die de locatie van de variabele buiten. De tweede verklaring in de functie-definitie voegt het touwtje aan de locatie. De hierboven beschreven techniek is hier gebruikt. Het bestaan ​​van deze twee locaties is een verspilling van het geheugen. Met verwijzing, kunnen deze twee locaties worden teruggebracht tot één plaats (zie hieronder). Nu, geheugen altijd schaars. Het is als geld, het maakt niet uit hoeveel je hebt, heb je nog redenen om meer geld nodig.

In de bovenstaande code, het gehele geheugen is niet economisch gebruikt. Je moet altijd proberen om zo weinig geheugen te gebruiken als je kunt, indien mogelijk. Weten dat het gebruik van verwijzingen leidt tot een economisch gebruik van het geheugen en verbeterde prestaties van uw code. Het passeren van een variabele op referentie Er zijn situaties waarin u hoeft alleen maar te verwijzen naar een geheugen locatie, de variabele voor het geheugen locatie is niet erg belangrijk.

Zou het niet mooi zijn, als je een referentie die gewoon verwijst naar de locatie van de $ var1 variabele in de bovenstaande code had. U gebruikt de verwijzing naar het touwtje te voegen. Na de aanroep (verklaring) en de uitvoering van de functie, je hoeft niet de verwijzing meer nodig. Op deze manier zul je slechts een geheugen locatie om te gaan met te hebben; niet twee zoals voorheen. Dus je bezuinigen geheugen en er is betere prestaties.

De volgende code illustreert dit (zie toelichting hieronder): $ var1 = "Ik ben de inhoud van een groot tekstbestand van de harde schijf, die nu in het geheugen."; functioneren appendFn (& $ ref) {$ ref = $ ref. "De laatste tekst."; terug $ ref; } $ Var1 = appendFn ($ var1); echo $ Var1; ?> De code en de vorige vergelijkbaar. Het verschil zit in de functie-definitie. Wanneer de functie wordt aangeroepen, wordt de variabele, $ var1 doorgegeven als argument. De parameter van de functie is nu een referentie. Het variabele deel ($ ref) van dit verzoek is nog niet aangegeven.

Deze verwijzing is niet toegewezen aan een nieuwe variabele en zal nooit worden toegewezen, direct (u zult nooit iets dergelijks, $ someVar = & $ ref hebben). Het is echter indirect toegewezen $ Var1 aan het begin van de uitvoering van de functie. Zodat de functie wordt uitgevoerd, zowel $ var1 en & $ ref betekenen hetzelfde geheugen locatie. Het stuk van de code die u beschouwen als een referentie, begint met en, gevolgd door een variabele naam, bijvoorbeeld $ ref, die begint met het ondertekende $.

Binnen de functie-definitie, het variabele deel naam voorafgegaan door de $ om de door de referentie genoemd locatie aan te pakken gebruik je. Zoals ik hierboven al zei, na het kennen van de betekenis referentie, je moet leren hoe het te gebruiken. In deze code wordt $ ref binnen de functie definitie verwijst naar dezelfde locatie als $ Var1 buiten. De return gebruikt $ ref om de inhoud (waarde) van het geheugen locatie terugkeren. Het maakt geen gebruik & $ ref hoewel & $ ref is in feite wat de functie gesprek terug. Het gebeurt hier, dat de bron- en doellocatie van de inhoud zijn hetzelfde.

Zoals u kunt zien, hebben we gebruikt slechts één geheugenlocatie in plaats van twee (zoals in het vorige geval). We hebben de economie bereikt van het geheugen en verbeterde prestaties. Functie Terugkerend een referentie in de bovenstaande code, werd een verwijzing geretourneerd. Het is echter niet de momenten waarop de locatie van de referentie gelijk aan die van het argument doorgegeven. Sommige functies geen parameter (dus krijgen geen argument), maar je zou willen dat het een verwijzing terug te keren. De functie in de volgende code maakt een argument niet ontvangen.

De functie geeft een verwijzing en in de roeping verklaring, wordt de verwijzing indirect toegewezen aan een variabele. functie en AFN () {$ myVar = "een waarde"; terug $ myVar; } $ Thevar = AFN (); echo $ Thevar; ?>

Page   <<       [1] [2] [3] [4] [5] [6] [7] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.