首頁  >  問答  >  主體

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梦2713 天前698

全部回覆(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
  • 取消回覆