當前位置:首頁 » 編程語言 » php的預定義變數

php的預定義變數

發布時間: 2023-05-02 09:17:49

php預定義變數有哪些

超全局變數 — 超全局變數是在全部作用域中始終可用的內置變數
$GLOBALS — 引用全局作用域中可用的全部變數
$_SERVER — 伺服器扒念和執行銀納環境信息
$_GET — HTTP GET 變鋒此沒量
$_POST — HTTP POST 變數
$_FILES — HTTP 文件上傳變數
$_REQUEST — HTTP Request 變數
$_SESSION — Session 變數
$_ENV — 環境變數
$_COOKIE — HTTP Cookies
$php_errormsg — 前一個錯誤信息
$HTTP_RAW_POST_DATA — 原生POST數據
$http_response_header — HTTP 響應頭
$argc — 傳遞給腳本的參數數目
$argv — 傳遞給腳本的參數數組

⑵ 在PHP中,預定義的常量和變數,是怎麼使用和輸出的

幾個 PHP 的「魔術常量」

__LINE__ :文件中的當前行號。

__FILE__ :文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。

__FUNCTION__ :函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__CLASS__ :類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。

__METHOD__ : 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。

⑶ PHP預定義變數$_SERVER中的PHP_SELF和SCRIPT_FILENAME有什麼詳細區別

SCRIPT_FILENAME指向當前執行腳本的絕對路徑;PHP_SELF當前正在執行腳本的文件名,兩者經常混淆,舉一個例子你就明白了,假如D盤web文件夾為根目錄,web下的htdocs文件夾有文件a.php,語句如下:
<?php
include(common/b.php);
?>,
htdocs文件下common目錄b.php,語句如下:
<?php
echo $_SERVER['PHP_SELF'];
echo "<br />";
echo $_SERVER['SCRIPT_FILENAME'];
?>
運行a.php得出結果:
/htdocs/in.php
D:/web/htdocs/in.php
可以看出PHP_SELF只輸出以根目錄為開始網站文件路徑,但是SCRIPT_FILENAME輸出的是所在硬碟的文件絕對路徑,可以認為一個是輸出網路文件路徑,一個是文件所在路徑.

SCRIPT_NAME指的是當前腳本文件名,比如b.php有echo $_SERVER['SCRIPT_NAME'];那麼輸出是/htdocs/common/b.php,明白了,會直接把當前語句所在腳本文件路徑輸出。

⑷ 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如何添加預定義常量或變數

常量使用define語句定義即可
全局變數可以定義到全局變數數組$GLOBALS中
參考手冊 : http://php.net/manual/zh/rese...
看題主的問法,感覺"環境變數"可能符合題主要求
nginx配置PHP server的時候可以增加以下指令
fastcgi_param CUSTOM_ENV_VAR "my_env_value";

之後只要是通過nginx訪問的PHP請求,在任何代碼中中使用 $_SERVER['CUSTOM_ENV_VAR'] 就能取到你需要的值
又或者在fastcgi的配置文件中增加一行:
env[CUSTOM_ENV_VAR]="my_env_value"

之後只要是php-fastcgi處理的PHP文件,都可以通過 getenv('CUSTOM_ENV_VAR'); 來獲取設置的值
如果題主確實打算不親自define而要得到類似E_ALL那樣的常量的話,就需要寫點C了
題主可以新建一個自己的擴展(或者直接隨便找個你會編譯的擴展也行),在PHP_MINIT_FUNCTION中使用以下宏來定義自己的常量
REGISTER_STRINGL_CONSTANT("MY_SITE_VERSION", "1.0", 3, CONST_PERSISTENT);

之後重新編譯PHP即可.

熱點內容
18經驗起床的伺服器ip 發布:2024-11-01 12:30:15 瀏覽:39
這個鎖屏密碼是什麼 發布:2024-11-01 12:24:51 瀏覽:91
相機存儲卡排名 發布:2024-11-01 12:24:49 瀏覽:958
androidxml格式化 發布:2024-11-01 12:23:14 瀏覽:164
Vb6編譯是錯誤不知道錯誤代碼 發布:2024-11-01 12:16:23 瀏覽:159
區域網電腦訪問伺服器怎麼提速 發布:2024-11-01 12:14:09 瀏覽:322
美創資料庫 發布:2024-11-01 12:05:45 瀏覽:916
你改愛奇藝密碼什麼意思 發布:2024-11-01 12:04:48 瀏覽:408
矩陣分解python 發布:2024-11-01 11:58:23 瀏覽:367
如何查詢微信支付密碼修改記錄 發布:2024-11-01 11:51:57 瀏覽:206