我继续收到此错误:
注意:未定义的变量:第7行的C:\ xampp \ htdocs \ Series \ DieOrExit.php中的var1
即使我的语法正确,$ var1是一个全局变量,我在我的函数中调用$ var1。我试图通过转到php.ini并设置我的error_reporting = E_ALL&来关闭通知。 ~E_NOTICE并重启Apache但没有任何反应。有没有人对如何解决这个问题有什么建议?谢谢!
这是我的剧本:
<?php
$var1 = "hello";
function x()
{
echo $var1;
}
x();
?>
答案 0 :(得分:1)
发生这种情况,因为x()
函数中的变量只有本地范围。
有一个几乎相同的例子:
<?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);
?>
答案 1 :(得分:0)
您可以通过在函数内部使用$ global关键字将$ var1的范围设置为全局范围来实现此目的
// error_reporting(E_ALL);
$var1 = "hello";
function x()
{
global $var1;
echo $var1;
}
x();
您需要如图所示将变量声明为全局内部函数,然后可以在内部函数中使用$ val。