国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > FAQ問答 > 正文

為什么global變量會出現無效或者錯誤的現象呢?

2020-03-22 17:31:03
字體:
來源:轉載
供稿:網友
在本篇文章介紹php中global變量無效問題之前,我為大家簡單介紹下,什么是phphtml' target='_blank'>全局變量global?首先phpglobal作用域不是應用于整個網站,而是應用于當前頁面,包括include或require的所有文件。但是在函數體內定義的global變量,函數體內可以使用,在函數體外定義的global變量不能在函數體內使用。

這里也順帶提下php $GLOBALS變量 即引用全局作用域中可用的全部變量, 在 $GLOBALS 數組中,每一個變量為一個元素,鍵名對應變量名,值對應變量的內容。$GLOBALS 之所以在全局范圍內存在,是因為 $GLOBALS 是一個超全局變量。注意$GLOBALS 的寫法,比如變量$a1,寫法為$GLOBALS[ a1 ]。

那么下面用個淺而易懂得例子給大家詳細解釋下global在php中出現無效的問題:

首先demo1.php頁面代碼如下:

 ?php $site_name = CodePlayer  function sayHi(){ global $site_name; echo Hello! Welcome to $site_name !  ? 

demo2.php頁面代碼如下:

 ?php function include_view_page(){ include demo2.php  sayHi();  include_view_page(); ? 

當我們訪問demo1.php頁面,能夠正確顯示出歡迎語句。然而當我們使用瀏覽器訪問demo2.php頁面輸出結果卻如下:

Hello! Welcome to !

我們在函數include_view_page()中調用sayHi()函數時,demo2.php頁面sayHi()函數中global的$site_name卻沒有被正確識別、生效。

其實當我們在函數include_view_page()中include demo2.php頁面時,demo2.php頁面的變量$site_name就相當于存放在include_view_page()函數內的作用域中。大家都知道在函數內global一個變量實際上是在函數內建立一個對頁面全局變量的引用。而在這個例子中,$site_name變量對于demo1.php而言,它僅僅是include_view_page()函數內的局部變量,因此無法顯示global變量,我們進行相關調用時是無法獲取到正確的變量和變量值。

在php中,我們尤其需要注意類似上述在函數內include某個頁面,導致該頁面中變量的作用域發生改變的問題。為了避免這種情況,我們應該盡量減少多層次的include調用,也盡量不要在函數內使用include。此外,我們還可以在demo2.php的頁面中將$site_name進行全局變量形式的聲明。

//demo2.php ?php global $site_name; $site_name = CodePlayer  function sayHi(){ global $site_name; echo Hello! Welcome to $site_name !  ? 

函數中如何引用全局變量示例如下:

bb4ae9ae1dd92a2b29d663d3663465e.png輸出的結果如下:

var2 is set to xxxxxx
var2 is set to eeee

可見,上面的代碼中:
$var2 = $var1; //1 只對函數內部可見。 而 $GLOBALS[ var2 ] = $var1; //2 在全局范圍內可見。

希望本篇文章介紹關于php global出現無效的問題對大家有所幫助!

【相關文章推薦】

關于PHP中global的問題

global與$GLOBAL[ ]的一些不同理解

用global怎么不是輸出30

PHP源碼分析之Global關鍵字

以上就是為什么global變量會出現無效或者錯誤的現象呢?的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜宾县| 化德县| 南江县| 房产| 宣汉县| 湖州市| 凤台县| 门源| 教育| 黎川县| 汕头市| 治县。| 蓝田县| 和田市| 日喀则市| 潍坊市| 新津县| 新邵县| 手游| 彭州市| 平乡县| 溆浦县| 承德市| 冷水江市| 尼勒克县| 始兴县| 凌云县| 揭阳市| 武鸣县| 绥宁县| 高州市| 惠东县| 桃源县| 临清市| 太湖县| 江孜县| 蓬溪县| 巴塘县| 勐海县| 若羌县| 故城县|