unsetting a referenced parameter in a function
| From: | Tom Worster | Date: | Wed, 22 Jul 2009 19:56:57 +0000 |
| Subject: | unsetting a referenced parameter in a function | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-295709@lists.php.net to get a copy of this message | ||
though the manual is perfectly clear that this should be expected, i was a
bit surprised that the result of the following is 42
<?php
function foo(&$a) {
$a = 42;
unset($a);
$a = 'meaning';
}
foo($a);
print("$a\n");
?>
normally i would expect unset() to free some memory. but in this example it
doesn't and has a different behavior: it releases foo's reference to the
global $a, allowing the next line to define a local $a.
i think i'd have preferred compile error.