*   >> Lezen Onderwijs artikelen >> tech >> web design

Php - Pass Door Reference, A Different Approach

Jake';} $ myArray = array ('Jane', 'John', 'Joey'); addAName ($ myArray); print_r ($ myArray); //Jake is nu onderdeel van de club!

Is dat niet geweldig? Door alleen het teken aan de variabele, de functie weet nu werken op het werkelijke variabele in plaats van de kopie aan het einde van de levenscyclus van de functie zal worden weggegooid. Uiteraard is dit voorbeeld is puur dat - een voorbeeld, niet zo handig, maar als u meerdere acties op één punt (in het bijzonder een array) is het veel gemakkelijker en schoner, om het item als het eigenlijke product passeren

>

Een waarschuwing echter niet proberen om een ​​verwijzing naar een functie die niet wordt verwacht dat het pas, als het een 'call tijd pass van referentie' zal produceren fout:

 //dit is niet allowedfunction someUnsuspectingFunction ($ array) //dit verwacht een kopie {$ scala [] = "5";} $ myArray = array ('1', '2', '3', '4'); someUnsuspectingFunction (& $ myArray); //Dit zal een exceptionprint_r ($ myArray) werpen; 

Het probleem is hier (nerd alert) is dat de & eigenlijk betekent geef me de 'adres' van een variabele te manipuleren.

Dus, als we noemen het op de juiste manier (functie func (& $ var) {}), de functie weet dat het gaat om een ​​adres te krijgen in het geheugen, en weet om het object te manipuleren op die locatie. Als we proberen om het teken te gebruiken bij het aanroepen van een functie, de verkeerde manier (func (& $ myVar);), zijn we het passeren van de werkelijke geheugen adres van de variabele naar de functie, die wordt verwacht van een array, niet een geheugen adres!

Dus, terwijl een beetje verwarrend, is het heel handig en heel nuttige vaardigheid onder je programmering riem te hebben!

Dat is alles voor nu!

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