首页  >  问答  >  正文

php - 关于定义变量的问题

我是个初学者,我在家里使用phpstorm编写以下这段代码运行是不报错的
代码如下:


<?php
$x=5; // 全局变量
function myTest()
{

$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";

}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x";
echo "
";
echo "变量 y 为: $y";
?>


但是上班的时候,浏览器就报这个提示,如下:
测试函数内变量:
Notice: Undefined variable: x in F:WEBDEVELOPIndex.php on line 8
变量 x 为:
变量 y 为: 10
测试函数外变量:
变量 x 为: 5
Notice: Undefined variable: y in F:WEBDEVELOPIndex.php on line 18
变量 y 为:

问题:
我在看PHP教程中说$就可以定义变量了,但是却提示x变量没有被申明,请大神帮我解释一下可以吗?谢谢

过去多啦不再A梦过去多啦不再A梦2662 天前667

全部回复(5)我来回复

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-07 09:25:08

    1. 我猜测家里不报错而公司报错,是因为php报错级别设置不同导致的,你可以在代码的开头添加如下代码试试:

      error_reporting(E_ALL ^ E_NOTICE);// 除了E_NOTICE之外,报告所有的错误
      这个是动态设置的,你也可以在php.ini中设置,具体方法百度一下;

    2. 函数里面的变量对外是封闭的,外边设置了里面不能使用,这和php版本无关,楼上详细说明了。

    回复
    0
  • 迷茫

    迷茫2017-06-07 09:25:08

    PHP 全局变量这里有详解

    外部定义全局变量,函数内部使用的时候,需要使用global关键字,这是语法规定,或者使用$GLOBAL数组

    回复
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-07 09:25:08

    要声明他是全局变量才行,global $x;这样才行

    回复
    0
  • 巴扎黑

    巴扎黑2017-06-07 09:25:08

    可以搜索关键字"作用域",每种语言的变量作用域都不相同,可以对比来理解。

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-07 09:25:08

    你看看你测试的 PHP 版本和工作环境的 PHP 版本。新的版本我不清楚,5.3、5.6 中全局变量的作用域不包括函数内部,所以函数识别不了 $x 很正常,因为在函数的作用域中没有这个变量

    回复
    0
  • 取消回复