När du skapar en funktion och skicka parametrar till det i PHP : Hypertext Preprocessor , måste du förstå omfattningen av parametrarna . PHP tvingar dig att specifikt förklara när man ska låta en funktion för att ändra det globala värdet för en parameter . I PHP version 5 , påverkar objektmodellen hur objekten behandlas då skickas som parametrar till funktioner . Medan modellen överensstämmer med den övergripande PHP standarden , ger det en funktion som låter dig manipulera de globala värdena för objektets medlemmar utan att uttryckligen förklara detta i funktionen definition . Parameter Scope
När du passerar en variabel till en funktion i PHP och funktionen ändrar värdet på variabeln , har den ingen effekt på variabelns värde utanför funktionen . För att möjliggöra en funktion för att ändra värdet på en variabel , måste du deklarera specifikt denna avsikt genom att inleda variabelnamnet med ett &-tecken i funktionen definition . Till exempel :
funktion modify_param , ( & param ) { } Addera värde eller referens
En funktion kan inte ändra en variabels värde utanför sitt eget tillämpningsområde eftersom PHP passerar variabeln i värde . Det skapar en kopia av variabelns värde och skickar kopia till funktionen . Eventuella ändringar som värde påverkar bara den lokala kopian . När du passerar genom hänvisning med ampersand i funktionen definition , passerar PHP en pekare till minnesadressutrymme innehåller värdet på variabeln . Verksamheten på variabeln utförs sedan mot det globala värdet av variabeln , inte en kopia av sitt värde .
Passing objekt
När du passerar ett objekt som en parameter till en funktion , passerar PHP fortfarande föremål av värde , men den passerar en annan typ av värde . En kopia av ett objekt handtag, eller identifierare , ledes till funktionen. Den objektidentifierare tillåter funktionen för att hitta utrymmet minnesadress där värdena av slutföreningarna medlemmarna lagras. Detta innebär att ett objekts medlemmar som faktiskt skickas med referens . Verksamheter som använder ett objekts egenskaper och metoder manipulera utrymmet minnesadress för de medlemmar och ändra deras globala värden .
Objekthandtag Kopiera
inte alla objekt i PHP passeras genom hänvisning , även om ändringar i objekt medlemmarna påverkar globala värden . En kopia av objektet handtaget förs till en funktion. Om en funktion som gör ett uppdrag som förändrar föremålet hantera själv , ändrar att förändring inte föremålet hantera eftersom den antagits av värde . För att möjliggöra en funktion för att ändra objektets handtag , måste du skicka ett objekt som referens , precis som du gör med alla andra variabler i PHP .