搜尋
首頁後端開發php教程PHP中全域和超全域變數的區別

PHP中全域和超全域變數的區別

May 25, 2017 pm 05:41 PM
php全域變數差別超級全域變數

這篇文章主要介紹了PHP全局變數與超級全局變數區別,較為詳細的分析講述了PHP全局變數與超級全局變數的概念,用法與使用區別,需要的朋友可以參考下

本文分析了PHP全域變數與超級全域變數差異。分享給大家供大家參考,具體如下:

全域變數就是在函數外面定義的變數。不能在函數中直接使用。因為它的作用域不會到函數內部。所以在函數內部使用的時候常常看到類似global $a;

超全域變數作用域在所有腳本都有效。所以,在函數可直接使用。例如 $_GET,$_SERVER都是超全域變數。除$_GET,$_POST,$_SERVER,$_COOKIE等之外的超全域變數保存在$GLOBALS陣列中。 注意,不要誤寫成$_GLOBALS。有點受到$_POST的影響了。

$GLOBAL是一個特殊的php自訂的陣列。超級全域變數。跟$_SERVER一樣,都屬於超全域變數。

在手冊中搜尋$GLOBALS 就能查詢超全域變數的具體說明和使用方法

變數名稱就是該陣列的索引。 說明:使用$GLOBALS['a']定義一個超全域變數後。可以使用$a直接存取

手冊中這樣解釋的:

$GLOBALS — References all variables available in global scope 引用所有在全局範圍內的可用的變數

結合範例這樣理解:假如在函數外面定義了一個變數$a。那麼在函數中可用透過$GLOBALS['a']取得到這個變數的值。所以,$GLOBALS陣列裡面就是:使用者定義的所有全域變數。

為什麼稱它為超級全域變數。對比$_POST,在函數裡面可用直接使用。根本不需要使用global語句了。所以$GLOBALS也是這樣的原理,只是$_POST保存是post方式傳遞的變數。 $GLOBALS保存的是使用者定義的全域變數。

個人理解:

先前對超級全域變數理解不對:超級全域變數在所有腳本下有效,這樣表述導致了理解上細微的偏差。如果在所有腳本下有效,那麼是不是$GLOBALS保存的超級全域變數,在一個php檔案中定義後,在另一個檔案中還能取得到。

顯然不會是這樣的。估計受到了$_POST的影響,因為它好像所有人都能去訪問到。沒有意識到,你只能存取到目前處理到的$_POST資料。不可能兩個人同時提交留言,php檔案取得到post的資料怎麼區別。這個數據只能是當前線程的。最後,超級全域變數可以這樣看,因為它是相對於全域變數而言的。比全域變數更一個層次,全域變數不能作用到函數內部。它就解決了這個問題。在其他語言中,全域變數都能作用到函數內部。 php語言設計就不是這樣的。

全域變數直接在函數內使用,那麼總得提供一個變數能直接使用的吧。就出來了超級全域變數的概念。

以上是PHP中全域和超全域變數的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP如何識別用戶的會話?PHP如何識別用戶的會話?May 01, 2025 am 12:23 AM

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

確保PHP會議的一些最佳實踐是什麼?確保PHP會議的一些最佳實踐是什麼?May 01, 2025 am 12:22 AM

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

PHP會話文件默認存儲在哪裡?PHP會話文件默認存儲在哪裡?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

您如何從PHP會話中檢索數據?您如何從PHP會話中檢索數據?May 01, 2025 am 12:11 AM

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

您如何使用會議來實施購物車?您如何使用會議來實施購物車?May 01, 2025 am 12:10 AM

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

您如何在PHP中創建和使用接口?您如何在PHP中創建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解釋瞭如何創建,實施和使用PHP中的接口,重點關注其對代碼組織和可維護性的好處。

crypt()和password_hash()有什麼區別?crypt()和password_hash()有什麼區別?Apr 30, 2025 pm 03:39 PM

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

如何防止PHP中的跨站點腳本(XSS)?如何防止PHP中的跨站點腳本(XSS)?Apr 30, 2025 pm 03:38 PM

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境