標籤雲

搜尋此網誌

2008/02/26

php基礎-2

PHP Superglobals (超全域變數)
$GLOBALS
每個全域範圍內有效的變數, 該 array 的 key 為全域變數的名稱
$_SERVER
由 web server設定的變數或者直接與當前的執行環境相關聯。類似於 $HTTP_SERVER_VARS
$_GET
經由 URL query string提交的變數, 類似於 $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 機制提交的變數, 因此並不值得信任, 所有包含在該 array 中的變數存在與否以及變數的順序均按照 php.ini 中 variables_order 的設定來定義
(運行於命令行模式時此 array 不會包含 argv 和 argc; 它們已經存在於 $_SERVER 中)
$_SESSION
註冊給session的變數, 類似於 $HTTP_SESSION_VARS

變數範圍:
global 關鍵字--在 function 中使用 global 把 function 外的變數引入, 或是用 $GLOBALS 代替global關鍵字
static 靜態變數--static 變數只在 function 中存在, 但離開function時值還在, 在 static 宣告中若將 expression asign給它會導致錯誤

可變變數:
$a='hello';
$$a = 'world';
echo "$a{$$a}"; //把$a的值當作變數名

來自 PHP 之外的變數:
HTTP表單: $_POST 跟 $_GET
HTTP cookies: 使用 setcookie() 設定 cookie, 同名會替換, 要調用則使用 $_COOKIE
(注意: 因為 . 代表字串相連, 所以php會自動將變數名中的 . 換成 _ )

include 與 require: (include_once 與 require_once)
include 跟 reruire 的主要差別在於, 當檔案找不到時, include 產生警告並繼續執行, require 則傳出fatal error 並終止程式

被包含的檔案可以使用包含它的檔案的變數, 也可return值給包含它的檔案

如果被包含的檔案裡面還有 include 或 require 其他檔案, 可以使用 include_once 和 require_once 這樣一來可以把裡面包含的檔案一次載入

沒有留言: