Note :static $b=0 This assignment operation will only be executed when the variable is initialized for the first time. Attachment A: Static members and static methods in a class almost always use the class name or self or parent plus: :xxx when calling. Their scope is the same as this, but their declaration is outside the method. Appendix B: The scope in js is: use var aa=‘xxx’; what is declared outside the function is the global variable (regardless of whether it has the modifier var or not). Local variables are declared using var inside a function, and global variables are declared without var. Appendix C: About PHP references PHP reference: Add &. Reference in php before a variable, function or object is to access the contents of the same variable with different names. 1. Variable reference:
2. Call by address of function
3. Function reference return
Analysis: What you get using $a=test() is not actually a reference return from the function. Just copy the function's return value to $a without affecting $b. This call is no different from an ordinary call. Php stipulates: $a=&test() method is the reference return of the function. He pointed the memory address of the $b variable and the memory address of the $a variable to the same place. That is equivalent to $a=&$b; 4. Cancel reference
Analysis: Unsetting a reference only cancels the binding between the variable name and the variable's content. It does not mean that the content is destroyed, and its value still exists. 5. Global quote: When you declare a variable using global $var, you actually create a reference to the global variable.
6. Object reference: In the method of the object, the object called by $this is the reference that calls it. Note: The pointing of addresses in PHP is not implemented by the user himself, but through the zend core. PHP references adopt the principle of "write copy", that is, unless a write operation occurs, the variable pointing to the same address or Objects will not be copied. example: $a = 1; $b =$a;$a and $b both point to the same memory address, it is not that $a and $b occupy different memories. If you now execute the sentence $a="dsd": the memory data pointed to by $a and $b need to be rewritten, at this time the zend core will automatically judge. Automatically generate a data copy of $a for $b, and re-apply a piece of memory for storage. That’s all about PHP variable scope and PHP references. I hope it will be helpful to everyone. |