php - 关于定义变量的问题
过去多啦不再A梦
过去多啦不再A梦 2017-06-07 09:23:08
0
5
729

我是个初学者,我在家里使用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梦

全部回复(5)
女神的闺蜜爱上我
  1. 我猜测家里不报错而公司报错,是因为php报错级别设置不同导致的,你可以在代码的开头添加如下代码试试:

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

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

迷茫

PHP 全局变量这里有详解

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

女神的闺蜜爱上我

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

巴扎黑

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

曾经蜡笔没有小新

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板