php - 關於定義變數的問題
过去多啦不再A梦
过去多啦不再A梦 2017-06-07 09:23:08
0
5
694

我是個初學者,我在家裡用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 很正常,因為在函數的作用域中沒有這個變數

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!