|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2002-09-04 12:25 UTC] iliaa@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 06 22:00:02 2026 UTC |
unset()ting a variable passed by reference does not destroy this variable, but rather protects it's value against being further altered inside the function. < ? php function subroutine(&$byname, $assign, $unset) { if($assign) $byname = 'set by subroutine'; if($unset) unset($byname); $byname = 'finally set inside subroutine'; } $byname = 'Set Outside!'; subroutine($byname, TRUE, FALSE); echo ('<p> 1st. call: ($assign=TRUE, $unset=FALSE) returns $byname="'.$byname.'"</p>'); $byname = 'Set Outside!'; subroutine($byname, FALSE, FALSE); echo ('<p> 2nd. call: ($assign=FALSE, $unset=FALSE) returns $byname="'.$byname.'"</p>'); $byname = 'Set Outside!'; subroutine($byname, TRUE, TRUE); echo ('<p> 3rd. call: ($assign=TRUE, $unset=TRUE) returns $byname="<b>'.$byname.'</b>"</p>'); $byname = 'Set Outside!'; subroutine($byname, FALSE, TRUE); echo ('<p> 4th. call: ($assign=FALSE, $unset=TRUE) returns $byname="<b>'.$byname.'"</p></b>'); ? > Outputs: 1st. call: ($assign=TRUE, $unset=FALSE) returns $byname="finally set inside subroutine" 2nd. call: ($assign=FALSE, $unset=FALSE) returns $byname="finally set inside subroutine" 3rd. call: ($assign=TRUE, $unset=TRUE) returns $byname="set by subroutine" 4th. call: ($assign=FALSE, $unset=TRUE) returns $byname="Set Outside!" More information and a live Demo can be obtained from http://purodha.hostsharing.de/hostsharing/menu0/test_by_name.php