如何在PHP中修复未定义的变量错误?

Ana*_*try 7 php error-handling runtime-error compiler-errors syntax-error

今天,我开始学习PHP.而且,我已经创建了我的第一个PHP文件来测试不同的变量.你可以看到我的文件如下.

<?php
$x=5; // global scope

function myTest()
{
$y=10; // local scope
echo "<p>Test variables inside the function:<p>";
echo "Variable x is: $x";
echo "<br>";
echo "Variable y is: $y";
}

myTest();

echo "<p>Test variables outside the function:<p>";
echo "Variable x is: $x";
echo "<br>";
echo "Variable y is: $y";
?>
Run Code Online (Sandbox Code Playgroud)

我在浏览器中运行此文件时发现以下错误.

注意:未定义的变量:第19行的/opt/lampp/htdocs/anand/php/index.php中的x

注意:未定义的变量:y在第29行的/opt/lampp/htdocs/anand/php/index.php中

任何人都可以帮我解决问题吗?

mea*_*gar 6

第一个错误($x未定义)是因为默认情况下全局变量不会导入函数(而不是"超级全局变量").

您需要告诉您的函数您正在引用全局变量$x:

function myTest()
{
  global $x; // $x refers to the global variable

  $y=10; // local scope
  echo "<p>Test variables inside the function:<p>";
  echo "Variable x is: $x";
  echo "<br>";
  echo "Variable y is: $y";
}
Run Code Online (Sandbox Code Playgroud)

否则,PHP无法判断您是否使用同名的局部变量遮蔽全局变量.

第二个错误($y未定义),因为本地范围就是本地范围.它的全部意义在于$y不会"漏掉"功能.当然,您不能$y在代码中稍后访问它,而不是在定义它的函数之外.如果可以,那将与全球没什么不同.