Home > Backend Development > PHP Tutorial > Detailed explanation of PHP variable scope examples

Detailed explanation of PHP variable scope examples

怪我咯
Release: 2023-03-07 16:46:01
Original
2341 people have browsed it

What is variable scope?

When using variables, they must comply with the definition rules of variables. Variables must be used within a valid range. If the variable exceeds the limited range, the variable will be meaningless. Just like if we have one hundred yuan, we can buy things within one hundred yuan. If the item exceeds one hundred yuan, , then the one hundred yuan cannot be used. One hundred dollars is equivalent to this variable, and the range within one hundred dollars is equivalent to the scope.

PHP variables are divided into local variables, global variables and static variables due to different scopes, as shown in the following table:

Scope Explanation
Local variables The scope of a variable defined inside a function is the scope of the function where it is located
Global variables The scope of variables outside of all defined functions is the entire PHP file, but cannot be used inside user-defined functions. If you want users to use global variables inside user-defined functions, use the global keyword to declare global variables
static variables can be used in functions The variable value is retained after the call is completed, and when it returns to its scope again, the original value can continue to be used. For general variables, after the function is called, the data value stored in it will be cleared and the memory space occupied will be released. When using static variables, you must first use the keyword static to declare the variable, and put the keyword static before the variable to be defined

Detailed explanation of PHP variable scope examples A variable defined inside a function has its scope as the function in which it is located. If assigned outside the function, it will be considered a completely different variable. When exiting the function in which the variable was declared, the variable and its corresponding value are cleared.

Example

This example is used to compare variables assigned within the function (local variables) and variables assigned outside the function (global variables). The example code is as follows:

<?php
header("content-type:text/html;charset=utf-8");

$exam= "在函数外定义";                                     //声明全局变量

function add(){

    $exam="在函数内定义";                                //声明局部变量
    echo "在函数内输出的内容是:".$exam."<br/>";         //输出局部变量
}
add();                                                  //调用函数
echo "在函数外输出的内容是:".$exam;                    //输出全局变量


?>
Copy after login

The running results are as follows:

Detailed explanation of PHP variable scope examples

Static variables can be used in many places. For example, use static variables in a blog to record the number of visitors. Every time a user visits and leaves, the current number of visitors can be retained. Static variables can also be used in chat rooms to record user chat content.

Example

In the following example, static variables and ordinary variables are used to output a data at the same time to see the difference between the functions of the two. The code is as follows:

<?php
function zdy0(){
    static $message = 0;           //初始化静态变量
    $message+=1;
    echo $message." ";
}
function zdy1(){
    $message = 0;           //初始化静态变量
    $message+=1;
    echo $message." ";
}
for ($i=0;$i<10;$i++)   zdy0();   //输出1~10
echo "<br>";
for ($i=0;$i<10;$i++)   zdy1(); //输出10个1
echo "<br>";
?>
Copy after login

Code running result:

Detailed explanation of PHP variable scope examples

Example details:

The custom function zdy() outputs from 1 to 10 There are 10 numbers in total, and the zdy1() function outputs 10 1., because the custom function zdy() contains the static variable $message, and $message in the function zdy1() is an ordinary variable. Both variables are initialized to 0, and the two functions are called using for loops respectively. As a result, the function zdy() retains the value in the static variable $message after being called. The initialization of static variables is only performed when the function is called for the first time, and will no longer be initialized in the future. After the function zdy1() is called, its variable $message loses its original value and is re-initialized to 0.

Global variables can be accessed anywhere in the program, but inside the user-defined function Cannot be used. If you want the user to use global variables inside a user-defined function, use the global keyword to declare the global variable

Example

The following applies global variables and Global variables should not be used for comparison. In this example, two global variables $zy and $zyy are defined. In the user-defined function lxt(), I hope to call them on lines 5 and 7, but the program output result is only the value of $zyy

"PHP Chinese website" because the global variable $zyy is declared with the global keyword on line 6. There will be no output in line 5, and $zy has nothing to do with $zy in the second line. The example code is as follows:

<?php
header("content-type:text/html;charset=utf-8");
$zy="你好";
$zyy="PHP中文网";
function lxt(){
    echo $zy."<br>";  //$zy 不能被调用,没有输出
    global $zyy;       //利用关键字global 在函数内部说明,不说明认为是私有变量
    echo $zyy."<br>";  //调用$zyy
}
lxt();
?>
Copy after login

Code running result:

Detailed explanation of PHP variable scope examples

This is the difference between applying global variables and not applying global variables. In the next section, we will explain "Variable variables"

Recommended related video tutorials: "php.cn Dugu Jiujian (4)-php video tutorial》Scope of variables

The above is the detailed content of Detailed explanation of PHP variable scope examples. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template