我是個初學者,我在家裡用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變數沒有被申明,請大神幫我解釋一下可以嗎?謝謝
女神的闺蜜爱上我2017-06-07 09:25:08
我猜測家裡不報錯而公司報錯,是因為php報錯等級設定不同導致的,你可以在程式碼的開頭加上以下程式碼試試:
error_reporting(E_ALL ^ E_NOTICE);// 除了E_NOTICE之外,報告所有的錯誤
這個是動態設置的,你也可以在php.ini中設置,具體方法百度一下;
函數裡面的變數對外是封閉的,外邊設定了裡面不能使用,這和php版本無關,樓上詳細說明了。
曾经蜡笔没有小新2017-06-07 09:25:08
你看看你測試的 PHP 版本和工作環境的 PHP 版本。新的版本我不清楚,5.3、5.6 中全域變數的作用域不包含函數內部,所以函數辨識不了 $x 很正常,因為在函數的作用域中沒有這個變數