導航:首頁 > 編程語言 > php超全局變數定義

php超全局變數定義

發布時間:2024-06-22 08:00:51

『壹』 請問,php中的$_REQUEST是什麼意思啊

PHP$_REQUEST是用於收集HTML表單提交的數據,PHP$_REQUEST屬於PHP的超級全局變數。

以下實例顯示了一個輸入欄位(input)及提交按鈕(submit)的表單(form)。 當用戶通過點擊 "Submit" 按鈕提交表單數據時, 表單數據將發送至<form>標簽中 action 屬性中指定的腳本文件。

在這個實例中,我們指定文件來處理表單數據。如果你希望其他的PHP文件來處理該數據,你可以修改該指定的腳本文件名。 然後,我們可以使用超級全局變數$_REQUEST來收集表單中的 input 欄位數據。

(1)php超全局變數定義擴展閱讀:

PHP中預定義了幾個超級全局變數,這意味著它們在一個腳本的全部作用域中都可用。 你不需要特別說明,就可以在函數及類中使用。

1、$GLOBAL

$GLOBAL 是PHP的一個超級全局變數組,在一個PHP腳本的全部作用域中都可以訪問。$GLOBAL 是一個包含了全部變數的全局組合數組。變數的名字就是數組的鍵。

2、$_SERVER

$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。

這個數組中的項目由 Web 伺服器創建。不能保證每個伺服器都提供全部項目;伺服器可能會忽略一些,或者提供一些沒有在這里列舉出來的項目。

3、$_REQUEST

PHP $_REQUEST 用於收集HTML表單提交的數據。

4、$_POST

PHP $_POST 被廣泛應用於收集表單數據,在HTML form標簽的指定該屬性:"method="post"

5、$_GET

PHP $_GET 同樣被廣泛應用於收集表單數據,在HTML form標簽的指定該屬性:"method="get"。

『貳』 php 定義變數

<?php//常量聲明!defined("PI") or define("PI", 3.14);//變數聲明$var = value; //value可以為值類型、引用類型、NULL、布爾類型、資源類型?>

『叄』 PHP定義空變數的意義

變數用於存儲值,比如數字、文本字元串或數組。
一旦設置了某個變數,我們就可以在腳本中重復地使用它。
PHP 中的所有變數都是以 $ 符號開始的。
在 PHP 中設置變數的正確方法是:
$var_name = value;PHP 的入門者往往會忘記在變數的前面的 $ 符號。如果那樣做的話,變數將是無效的。
讓我們試著創建一個存有字元串的變數,和一個存有數值的變數:

如果對於變數和常量的定義,你會注意幾個方面呢?你可能會想到:
如何定義變數,它和C# 等語言有什麼不同呢?
變數區分大小寫嗎?
PHP的變數還有其他重要的嗎?
常量和變數的定義一樣嗎?
分別講述吧。
1.如何定義變數,它和C# 等語言有什麼不同呢?
PHP 中的變數用一個美元符號後面跟變數名來表示。變數名是區分大小寫的。例如:
<?php教程
$var='Jim';
$VAR='Kimi;
echo "$var,$VAR";//輸出「Jim,Kimi"
?>你可能還關心變數的命名,其實和大多數語言一樣。
2. 變數區分大小寫嗎?
如 1里說的,區分大小寫。
注意,需要說明的一點是自PHP4以來,引入了引用賦值的概念,其實和多數語言的引用類似,不過我覺得最類似的是C/C++.因為它也用到了"&"符號。例如: 1 <?php
2 $foo = 'Bob'; // 賦值'Bob'給foo
3 $bar = &$foo; // 通過$bar引用.注意&符號
4 $bar = "My name is $bar"; // 修改 $bar
5 echo $bar;
6 echo $foo; // $foo 也修改了.
7 ?> 和其他語言一樣,只能對有變數名的變數才可以引用。
3. PHP其他重要點
預定義變數
預定義變數在PHP是一個重要的概念。 PHP 提供了大量的預定義變數。由於許多這些變數依賴於運行的伺服器的版本和設置,及其它因素,所以並沒有詳細的說明文檔。一些預定義變數在 PHP 以命令行形式運行時並不生效。
需要注意的是 在PHP 4.2.0 以及後續版本中,PHP 指令 register_globals 的默認值為 off。這是 PHP 的一個主要變化。讓 register_globals 的值為 off 將影響到預定義變數集在全局范圍內的有效性。例如,為了得到 DOCUMENT_ROOT 的值,將必須使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 來代替 $id 從 URL http://www.example.com/test.php?id=3 中獲取 id 值,亦或使用 $_ENV['HOME'] 來代替 $HOME 獲取環境變數 HOME 的值。
從 PHP 4.1.0 開始,PHP 提供了一套附加的預定數組,這些數組變數包含了來自 web 伺服器(如果可用),運行環境,和用戶輸入的數據。這些數組非常特別,它們在全局范圍內自動生效,例如,在任何范圍內自動生效。因此通常被稱為自動全局變數(autoglobals)或者超全局變數(superglobals)。(PHP 中沒有用戶自定義超全局變數的機制。)超全局變數羅列於下文中;而且,你也將注意到舊的預定義數組($HTTP_*_VARS)仍舊存在。自 PHP 5.0.0 起,長格式的 PHP 預定義變數可以通過設置 register_long_arrays 來屏蔽。
下表是PHP的超全局變數:
超全局變數
描述

$GLOBALS 包含一個引用指向每個當前腳本的全局范圍內有效的變數。該數組的鍵名為全局變數的名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER 變數由 web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET 經由 URL 請求提交至腳本的變數。類似於舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用)。
$_POST 經由 HTTP POST 方法提交至腳本的變數。類似於舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用)。
$_COOKIE 經由 HTTP Cookies 方法提交至腳本的變數。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。
$_FILES 經由 HTTP POST 文件上傳而提交至腳本的變數。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用)
$_ENV 執行環境提交至腳本的變數。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。
$_REQUEST 經由 GET,POST 和 COOKIE 機制提交至腳本的變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。此數組在 PHP 4.1.0 之前沒有直接對應的版本。參見 import_request_variables()。
$_SESSION 當前注冊給腳本會話的變數。類似於舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用)
變數的應用范圍
每個變數都有應用范圍,那麼PHP是怎麼定義的呢?還是先看看下面代碼吧:
1 <?php
2 $var=0;
3 function test($index)
4 {
5 $var=$var+1;
6 echo "The ".$index." number is ".$var."<br>";
7 }
8 test(1);
9 test(2)
10 ?>你認為以上的代碼會顯示什麼結果呢?
如果你認為是下面:
結果1:
The 1 number is 1
The 2 number is 2不好意思,你的結果是錯誤的。
其實正確的結果應該是:
結果2
The 1 number is 1
The 2 number is 1那麼你從其中發現了什麼呢?我們可以知道雖然第2行的代碼定義在外面,但第5行的變數和它是不一樣的。第5行的變數僅在這個函數里使用。進一步的,如果我想調用第一行的變數而顯示結果2.代碼可以如下:
1 <?php
2 $var=0;
3 function test($index)
4 {
5 global $var;
6 $var=$var+1;
7 echo "The ".$index." number is ".$var."<br>";
8 }
9 test(1);
10 test(2)
11 ?>這個代碼段和上面的代碼段有何區別呢?注意第5行,多了一個global關鍵字。明白了吧。
那麼還有沒有其他方法呢?答案是肯定的。
代碼如下:
1 <?php
2 $var=0;
3 function test($index)
4 {
5
6 $GLOBALS["var"]=$GLOBALS["var"]+1;
7 echo "The ".$index." number is ".$GLOBALS["var"]."<br>";
8 }
9 test(1);
10 test(2)
11 ?>代碼有什麼特殊的嗎?那就是用到了$GLOBALS這個超全局變數。
PHP也有靜態變數的說法。不過靜態變數一般用在函數里,只能是局部變數了。看看下面代碼吧:
1 <?php
2 function Test()
3 {
4 static $a = 0;
5 echo $a."<br>";
6 $a++;
7 }
8 Test();
9 Test();
10 ?> 結果為
1
2
PHP還有一個相當令人興奮的特性:可變變數
所謂可變變數,就是一個變數的變數名可以動態的設置和使用。
看看下面的例子:
1 <?php
2 $a="hello";
3 $hello="world";
4 echo $a." ".$$a;
5 ?> 輸出的結果居然是hello,world.太神奇了。$$a其實就是$hello,因為$a的值是hello。
變數就這多了。下面看看常量。
常量
PHP的常量是不是前面加const呢?讓我們看一看。
不是的。在PHP必須用下面的方式定義。
bool define ( string name, mixed value [, bool case_insensitive] )
name 為常量名,value為常量的值。case_insensitive]為大小寫敏感。默認為敏感。例如:
1 <?php
2 define("CONSTANT", "Hello world.");
3 echo CONSTANT; // outputs "Hello world."
4 echo Constant; // outputs "Constant" and issues a notice.
5
6 define("GREETING", "Hello you.", true);
7 echo GREETING; // outputs "Hello you."
8 echo Greeting; // outputs "Hello you."
9
10 ?>
常量和變數不同:
常量前面沒有美元符號($);
常量只能用 define() 函數定義,而不能通過賦值語句;
常量可以不用理會變數范圍的規則而在任何地方定義和訪問;
常量一旦定義就不能被重新定義或者取消定義;
常量的值只能是標量。
實例
<?php
$txt = "Hello World!";
$number = 16;
?>PHP 是一門鬆散類型的語言(Loosely Typed Language)
在 PHP 中,不需要在設置變數之前聲明該變數。
在上面的例子中,您看到了,不必向 PHP 聲明該變數的數據類型。
根據變數被設置的方式,PHP 會自動地把變數轉換為正確的數據類型。
在強類型的編程語言中,您必須在使用前聲明變數的類型和名稱。
在 PHP 中,變數會在使用時被自動聲明。

<?php
//引用
$one="test";
two=&$one;//相當於傳地址,兩個變數指向一個地址
//動態變數
$one="######";
$two="one";
$three="two";
echo $three."<br>";//輸出"two"
echo $$three."<br>";//輸出"one"
echo $$$three."<br>";//輸出"######"
//php中有8個類型
//4種標量: int integer
// bool boolean
// float,double,real
// string
//2種復合類型: array
// object
//2種特殊類型: 資源類型 resource
// 空類型 null

//整數的聲明
$int=10; //十進制聲明
$int=045;//八進制聲明
$int=0xff;//十六進制聲明
$float=3.14E+5;//科學計數法
$float=3.14E-5;
//一下都是false的情況
$bool=false;
$bool=0;
$bool=0.000;
$bool=null;
$bool="";
$bool=" ";
$bool="0";
$bool=array();
//字元串的聲明
//1.單引號和雙引號都可以聲明字元串
//2.聲明的字元串沒有長度限制
//3.在雙引號的字元串中,既可以直接解析變數,又可以直接使用轉義字元(可以轉義單引號本身,也可以轉義轉義字元"")
//4.在單引號的字元串中,不可以直接解析變數,也不可以使用轉義字元
//5.在雙引號中不能再使用雙引號,在單引號中不能再使用單引號
//6.最好使用單引號,
$str='aaaaa';
$str="aaaa";
//定界符聲明字元串,大量字元串
//test是自定義的一個字元串,後面不能有任何字元,空格也不可以
//也要以test這個自定義的字元串結束,結束前不能有任何字元
$str=<<<test
this write content......
test;
?>

『肆』 PHP中全局變數global和$GLOBALS的區別分析

1、global
Global的作用是定義全局變數,但是這個全局變數不是應用於整個網站,而是應用於當前頁面,包括include或require的所有文件。
但是在函數體內定義的global變數,函數體內可以使用,在函數體外定義的global變數不能在函數體內使用
2、$GLOBALS
在 $GLOBALS 數組中,每一個變數為一個元素,鍵名對應變數名,值對應變數的內容。$GLOBALS 之所以在全局范圍內存在,是因為
$GLOBALS 是一個超全局變數。注意$GLOBALS 的寫法,比如變數$a1,寫法為$GLOBALS['a1']。
總結:

1.$GLOBALS['var']是外部的全局變數本身
2.global $var是外部$var的同名引用或者指針

『伍』 $page 浠涔堟剰鎬 php涓

$鍦php璇璦閲屾槸鍙橀噺瀹氫箟鐨勬爣蹇楃﹀彿錛屾墍鏈夌殑鍙橀噺鍓嶉潰閮借佸姞$絎﹀彿銆

$_GET[page]銆涓庛$page銆鐨勫尯鍒錛

鍏卞悓鐐規槸錛氫袱涓閮芥槸php閲岀殑鍙橀噺銆

鍖哄埆鍦ㄤ簬錛$page鏄涓涓鏅閫氱殑鐢ㄦ埛鑷瀹氫箟鐨勫彉閲忥紝鑰$_GET['page']鏄涓涓鐩稿規潵璇寸壒孌婄殑鍙橀噺銆

鎵璋撶殑鐗規畩錛屾槸鎸囩殑浠ヤ笅鍑犵偣錛
1.銆$_GET['page']銆鏄涓鏁扮粍鍙橀噺銆
2.銆榪欎釜鏁扮粍鍙橀噺鏄痯hp璇璦閲屾墍璋撴湁鈥滆秴鍏ㄥ矓鍙橀噺緇勨濓紝鍗籌紝榪欎釜鍙橀噺鏁扮粍鏄疨HP璇璦緋葷粺鍐呯疆鐨勶紝瀹氫箟浜嗗彉閲忎箣鍚庯紝姣斿傘$_GET['page']= 1; 閭d箞錛屽湪鑴氭湰鐨勪換浣曞湴鏂癸紙鍑芥暟鍐呴儴鎴栨槸鍏朵粬錛夐兘鍙浠ヨ塊棶銆
3.銆$_GET 琚玴hp璇璦瀹氫箟鐨勫姛鑳芥槸錛氬綋浣犵敤get鏂規硶鎻愪氦銆佽塊棶鏌愮綉鍧緗戦〉鏃訛紝鎵浼犻掔殑get鍙傛暟涓鑸閮戒繚瀛樿繖涓鏁扮粍閲屻

鎻愮ず涓鐐癸紝涓鑸鏉ヨ達紝$_GET['page'] 鐨 page 瑕佺敤銆'page'銆銆

『陸』 php全局變數和php預定義變數

僅供參考,更多,可以查看http://www.phpsu.com/

預定義變數

PHP 提供了大量的預定義變數。由於許多變數依賴於運行的伺服器的版本和設置,及其它因素,所以並沒有詳細的說明文檔。一些預定義變數在 PHP 以命令行形式運行時並不生效。有關這些變數的詳細列表,請參閱預定義變數一章。
Warning

PHP 4.2.0 以及後續版本中,PHP 指令 register_globals 的默認值為 off。這是 PHP 的一個主要變化。讓 register_globals 的值為 off 將影響到預定義變數集在全局范圍內的有效性。例如,為了得到 DOCUMENT_ROOT 的值,將必須使用 $_SERVER['DOCUMENT_ROOT'] 代替 $DOCUMENT_ROOT,又如,使用 $_GET['id'] 來代替 $id 從 URL http://www.example.com/test.php?id=3 中獲取 id 值,亦或使用 $_ENV['HOME'] 來代替 $HOME 獲取環境變數 HOME 的值。

更多相關信息,請閱讀 register_globals 的配置項條目,安全一章中的使用 Register Globals,以及 PHP » 4.1.0 和 » 4.2.0 的發行通告。

如果有可用的 PHP 預定義變數那最好用,如超全局變數。

從 PHP 4.1.0 開始,PHP 提供了一套附加的預定數組,這些數組變數包含了來自 web 伺服器(如果可用),運行環境,和用戶輸入的數據。這些數組非常特別,它們在全局范圍內自動生效,例如,在任何范圍內自動生效。因此通常被稱為自動全局變數(autoglobals)或者超全局變數(superglobals)。(PHP 中沒有用戶自定義超全局變數的機制。)超全局變數羅列於下文中;但是為了得到它們的內容和關於 PHP 預定義變數的進一步的討論以及它們的本質,請參閱預定義變數。而且,你也將注意到舊的預定義數組($HTTP_*_VARS)仍舊存在。自 PHP 5.0.0 起,長格式的 PHP 預定義變數可以通過設置 register_long_arrays 來屏蔽。

Note: 可變變數 超級全局變數不能被用作可變變數。

Note: 盡管超全局變數和 HTTP_*_VARS 同時存在。但是他們並不是同一個變數,所以改變一個的值並不會對另一個產生影響。

如果某些 variables_order 中的變數沒有設定,它們的對應的 PHP 預定義數組也是空的。

PHP 超全局變數
$GLOBALS
包含一個引用指向每個當前腳本的全局范圍內有效的變數。該數組的鍵名為全局變數的名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER
變數由 web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET
經由 URL 請求提交至腳本的變數。類似於舊數組 $HTTP_GET_VARS 數組(依然有效,但反對使用)。
$_POST
經由 HTTP POST 方法提交至腳本的變數。類似於舊數組 $HTTP_POST_VARS 數組(依然有效,但反對使用)。
$_COOKIE
經由 HTTP Cookies 方法提交至腳本的變數。類似於舊數組 $HTTP_COOKIE_VARS 數組(依然有效,但反對使用)。
$_FILES
經由 HTTP POST 文件上傳而提交至腳本的變數。類似於舊數組 $HTTP_POST_FILES 數組(依然有效,但反對使用)。詳細信息請參閱 POST 方法上傳。
$_ENV
執行環境提交至腳本的變數。類似於舊數組 $HTTP_ENV_VARS 數組(依然有效,但反對使用)。
$_REQUEST
經由 GET,POST 和 COOKIE 機制提交至腳本的變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。此數組在 PHP 4.1.0 之前沒有直接對應的版本。參見 import_request_variables()。
Caution

自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。

Note: 當運行於命令行模式時,此數組將不會包含 argv 和 argc 條目;它們已經存在於數組 $_SERVER 中。

$_SESSION
當前注冊給腳本會話的變數。類似於舊數組 $HTTP_SESSION_VARS 數組(依然有效,但反對使用)。

『柒』 全局變數的PHP 超級全局變數

PHP中預定義了幾個"超級全局變數(superglobals) ,這意味著它們在一個腳本的全部作用域中都可用。 你不需要特別說明,就可以在函數及類中使用。
PHP 超級全局變數列表: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION 變數描述$GLOBAL$GLOBAL 是PHP的一個超級全局變數組,在一個PHP腳本的全部作用域中都可以訪問。
$GLOBAL 是一個包含了全部變數的全局組合數組。變數的名字就是數組的鍵。 $_SERVER$_SERVER 是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數組。這個數組中的項目由 Web 伺服器創建。不能保證每個伺服器都提供全部項目;伺服器可能會忽略一些,或者提供一些沒有在這里列舉出來的項目。$_REQUESTPHP $_REQUEST 用於收集HTML表單提交的數據。$_POSTPHP $_POST 被廣泛應用於收集表單數據,在HTML form標簽的指定該屬性:"method="post"。$_GETPHP $_GET 同樣被廣泛應用於收集表單數據,在HTML form標簽的指定該屬性:"method="get"。

閱讀全文

與php超全局變數定義相關的資料

熱點內容
單片機一元左右 瀏覽:145
手機版網站伺服器ip地址查詢 瀏覽:322
kotlin位元組碼反編譯 瀏覽:300
雨雲apP是干什麼 瀏覽:736
php語句大全 瀏覽:591
微信聊天記錄在電腦哪個文件夾可以看到 瀏覽:679
python的事務管理演算法 瀏覽:751
榮耀8x使用了方舟編譯器嗎 瀏覽:259
紅塵直播app在哪裡下載啊 瀏覽:182
app鏈接在哪裡弄 瀏覽:645
水印相機收藏文件夾 瀏覽:572
如何懟程序員面試官 瀏覽:260
應用加密的優缺點 瀏覽:74
程序員培訓班不給錢 瀏覽:513
一堆伺服器能做什麼盈利 瀏覽:367
v20方舟編譯器推送 瀏覽:395
痛點pdf 瀏覽:916
php二維數組取部分值 瀏覽:390
重構流程壓縮時間高效管控 瀏覽:690
phpform參數詳解 瀏覽:559