One: unset:
1, if unset() a global variable in the function, only the local variable is destroyed, and the variable in the calling environment will remain called unset() Before the same value, if you want to unset() a global variable in a function, you can use $GLOBALS an array to implement:
2, if unset() A variable passed by reference in the function, only the local variable is destroyed, and the variable in the calling environment will remain called unset() the same value as before.
3. If a static variable is unset() in the function, this static variable will be destroyed inside the function. However, when this function is called again, the static variable is restored to the value before it was last destroyed
4. Addresses are freed only when all variables that point to the value (such as a reference variable pointing to the value) are destroyed
Reference: http://developer.51cto.com/art/200912/168014.htm