XAMPP未识别变量通知


XAMPP unidentified variable notice

我一直收到这个错误:

注意:第7行C:''examplep''htdocs''Series''DieOrExit.php中的未定义变量:var1

尽管我的语法是正确的,$var1是一个全局变量,我在函数中调用$var1。我试图通过访问php.ini并设置error_reporting=E_ALL&E_NOTICE并重新启动Apache,但什么也没发生。有人对如何解决这个问题有什么建议吗?谢谢

这是我的脚本:

<?php
$var1 = "hello";
function x()
{
    echo $var1;
}
x();
?>
这种情况会发生,因为x()函数中的变量只有局部作用域。

请参阅php.net上的变量范围。

有一个几乎相同的例子:

<?php 
$a = 1; /* global scope */ 
function test() 
{ 
    echo $a; /* reference to local scope variable */  
} 
test(); 
?>

带说明:

此脚本不会产生任何输出,因为echo语句引用了$a变量的本地版本,但它尚未在此范围内分配了一个值。您可能会注意到,这是与C语言有点不同的是,C语言中的全局变量功能自动可用,除非特别被本地定义覆盖。这可能会导致一些问题人们可能会无意中改变一个全局变量。在PHP全局如果变量要用于该函数。


要解决此问题,您必须将变量传递给函数,如下所示:

<?php
$var1 = "hello";
function x($var2)
{
    echo $var2;
}
x($var1);
?>

您可以通过在函数中设置$var1的作用域为全局作用域,并使用全局关键字

// error_reporting(E_ALL);
$var1 = "hello";
function x()
{
    global $var1;
    echo $var1;
}
x();

如图所示,您需要将变量声明为函数内部的全局变量,然后可以在函数内部使用$val。