Ich bin ein Anfänger, ich verwende PHPstorm, um zu Hause den folgenden Code zu schreiben, und er läuft ohne Fehler
Der Code lautet wie folgt:
<?php
$x=5; // Globale Variable
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";
}
myTest();
echo "<p>Externe Variable der Testfunktion:<p>";
echo "Variable x ist: $x";
echo "
";
echo "Variable y ist: $ y";
?>
Aber als ich bei der Arbeit war, meldete der Browser diese Eingabeaufforderung wie folgt:
Variablen in der Testfunktion:
Hinweis: Undefinierte Variable: x in F:WEBDEVELOPIndex.php in Zeile 8
Die Variable x ist:
Die Variable y ist: 10
Testvariablen außerhalb der Funktion:
Die Variable x ist: 5
Hinweis: Undefinierte Variable: y in F:WEBDEVELOPIndex.php in Zeile 18
Die Variable y ist:
Frage:
Ich habe ein PHP-Tutorial gelesen und dort stand, dass $ zum Definieren von Variablen verwendet werden kann, aber es wurde mir angezeigt, dass die x-Variable nicht deklariert wurde. Kann mir das bitte jemand erklären? Danke
我猜测家里不报错而公司报错,是因为php报错级别设置不同导致的,你可以在代码的开头添加如下代码试试:
error_reporting(E_ALL ^ E_NOTICE);// 除了E_NOTICE之外,报告所有的错误
这个是动态设置的,你也可以在php.ini中设置,具体方法百度一下;
函数里面的变量对外是封闭的,外边设置了里面不能使用,这和php版本无关,楼上详细说明了。
PHP 全局变量这里有详解
外部定义全局变量,函数内部使用的时候,需要使用global关键字,这是语法规定,或者使用$GLOBAL数组
要声明他是全局变量才行,global $x;这样才行
可以搜索关键字"作用域",每种语言的变量作用域都不相同,可以对比来理解。
你看看你测试的 PHP 版本和工作环境的 PHP 版本。新的版本我不清楚,5.3、5.6 中全局变量的作用域不包括函数内部,所以函数识别不了 $x 很正常,因为在函数的作用域中没有这个变量