Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么全局变量不需要初始化?_Php - Fatal编程技术网

Php 为什么全局变量不需要初始化?

Php 为什么全局变量不需要初始化?,php,Php,我很惊讶地看到,在程序中使用全局变量之前,它不需要任何初始化。这是我的一个小片段,它迫使我问这个问题: <?php function set_variable() { global $name; //$name = "admin"; } set_variable(); ?> <input type="text" name="name" value="<?php echo $name; ?>" /> 如果在函数外部声明变量,则该变量已在全

我很惊讶地看到,在程序中使用全局变量之前,它不需要任何初始化。这是我的一个小片段,它迫使我问这个问题:

<?php
function set_variable()
{
    global $name;
    //$name = "admin";
}

set_variable();
?>

<input type="text" name="name" value="<?php echo $name; ?>" />


如果在函数外部声明变量,则该变量已在全局范围内。因此,无需将变量声明为全局变量。但如果从函数内部调用,则必须使用全局关键字。除非使用全局变量声明,否则无法在函数内部访问这些变量。

global$name的行为类似于
$name=&$GLOBALS[“name”]
并隐式创建它(以
NULL
作为初始值)。可能重复@mario是的,你已经完全谈到了我要问的问题。这里没有关于变量范围的内容。再读一遍我的问题。