The result of executing the code is: my name is why, instead of what is displayed after executing changeName(). Analyzing the reason, this is because the $name variable in the function body changeName is set to a local variable by default, and the scope of $name is within changeName. So, modify the code and add global variables as follows: Note: After defining the global variable, the execution result is still my name is why. This result surprised me. It turns out that the correct usage of " In other words, when a function When referencing an external variable, you can declare the variable through global within the function, so that the variable can be used in the function (equivalent to passing it in as a parameter). Then, modify the code again: The result of this operation is: my name is what, indicating that
; to access them. Unlike all other superglobal variables, $GLOBALS is always available in PHP. Another example:
<?<span php
</span><span $name</span> = "why"<span ;
</span><span function</span><span changeName(){
</span><span $name</span> = "what"<span ;
}<br />changeName();
</span><span echo</span> "my name is " . <span $name</span> . "<br/>"<span ;
</span>?>
<?<span php
</span><span global</span> <span $name</span><span ;
</span><span $name</span> = "why"<span ;
</span><span function</span><span changeName(){
</span><span $name</span> = "what"<span ;
}<br />changeName();
</span><span echo</span> "my name is " . <span $name</span> . "<br/>"<span ;
</span>?>
<?<span php
</span><span $name</span> = "why"<span ;
</span><span function</span><span changeName(){
</span><span global</span> <span $name</span><span ;
</span><span $name</span> = "what"<span ;
}
changeName();
</span><span echo</span> "my name is " . <span $name</span> . "<br/>"<span ;
</span>?>
<?<span php
</span><span $name</span> = "why"<span ;
</span><span function</span><span changeName(){
</span><span global</span> <span $name</span><span ;
</span><span $name</span> = "what"<span ;
}
</span><span function</span><span changeName2(){
</span><span $name</span> = "where"<span ;
}
changeName();
changeName2();
</span><span echo</span> "my name is " . <span $name</span> . "<br/>"<span ;
</span>?>
<?<span php
</span><span $name</span> = "why"<span ;
</span><span function</span><span changeName(){
</span><span $GLOBALS</span>['name'] = "what"<span ;
}
changeName();
</span><span echo</span> "my name is " . <span $name</span> . "<br/>"<span ;
</span>?>
<?<span php
</span><span $var1</span> = 1<span ;
</span><span $var2</span> = 2<span ;
</span><span function</span><span test1(){
</span><span $GLOBALS</span>['var2'] = &<span $GLOBALS</span>['var1'<span ];
}
test1();
</span><span echo</span> <span $var2</span> . "<br />"<span ;
</span><span $var3</span> = 1<span ;
</span><span $var4</span> = 2<span ;
</span><span function</span><span test2(){
</span><span global</span> <span $var3</span>,<span $var4</span><span ;
</span><span $var4</span> = &<span $var3</span><span ;
}
test2();
</span><span echo</span> <span $var4</span> . "<br />"<span ;
</span>?>
<?<span php </span><span $var1</span> = 1<span ; </span><span function</span><span test1(){ </span><span unset</span>(<span $GLOBALS</span>['var1'<span ]); } test1(); </span><span echo</span> <span $var1</span> . "<br />"<span ; </span><span $var2</span> = 1<span ; </span><span function</span><span test2(){ </span><span global</span> <span $var2</span><span ; </span><span unset</span>(<span $var2</span><span ); } test2(); </span><span echo</span> <span $var2</span><span ; </span>?>