3-1
變數
變數:就是用來暫時存個資料用的東西啦!
變數來源:自訂變數、外部變數(來自表單或session、Cookie、環境變數)
一、自訂變數
- $變數名稱="變數值";
- 例:$name="tad";
- 名稱盡量有意義。
- 變數名稱有區分大小寫,開頭不能用數字
- php支援以下的資料形態:integer(整數)、double(浮點數)、string(字串)、array(陣列)、object(物件)。
$a=123; //$a → integer整數
$a=12.3; //$a → double浮點數
$a="123"; //$a → string字串
$a=array(1,2,3); //$a → array陣列
- PHP的變數無須宣告其型態,資料形態也會視情況自動做轉換,如下例 $a、$b 都是字串,$c 卻是整數形態。
$a = "2年級";
$b = "3年級"
$c = $a + $b;
二、外部變數:
- $_GET['變數']:用get方法傳來的變數,常見於連結(常用)
- $_POST['變數']:用post方法傳來的變數,常用於表單(常用)
- $_REQUEST['變數']:取得來自get、post、cookie的變數(偶爾用到)
- $_SESSION['變數']:來自session的變數,session存於主機端(偶爾用到)
- $_COOKIE['變數']:來自cookie的變數,cookie存於客戶端(不常用)
- $_FILES['變數']:上傳檔案的變數,是一個陣列(僅檔案上傳才會用到)
- $_SERVER['變數']:系統變數,可用phpinfo()觀看(偶爾用到)
- $_ENV['變數']:環境變數,可用phpinfo()觀看(幾乎沒人在用)
三、來自表單
- 表單預設傳遞方式為GET(method="get"),收到之變數即為 $_GET['名稱']
- 若用method="post"來指定傳遞方式為post,收到之變數為 $_POST['名稱']
- GET的缺點是傳遞資料的量有上限,看瀏覽器和伺服器設定,一般是2kb - 8kb(IE 和 Safari 是 2KB,Opera 為 4KB,Firefox 為 8KB),但優點是可以將傳遞的參數記錄下來(可能也是缺點),要做成書籤、分頁、或分享給別人都比較容易。
- POST的優點是容量無上限(其實有,但是看伺服器的設定),缺點就是參數看不見,無法將POST的傳遞結果分享給別人。
- 一般來說,j若用於搜尋,建議用GET,其餘用POST。這樣比較容易分。
四、環境變數
- 變數除了自己設以外,還能夠利用現成的環境變數。
- 用phpinfo()即可看出有哪些還變數可以用,如:
本頁名稱:$_SERVER['PHP_SELF
']
根目錄位置:$_SERVER['
DOCUMENT_ROOT
']
主機位置:$_SERVER['
HTTP_HOST
']
您的瀏覽器版本:$_SERVER['
HTTP_USER_AGENT
']
使用者的IP位置:$_SERVER['
REMOTE_ADDR
']
主機的IP位置:$_SERVER['
SERVER_ADDR
']
您用的網站伺服器是:$_SERVER['
SERVER_SOFTWARE
']
五、 PHP變數範圍
- 變數只存活於當頁。
- 變數要送到另一頁使用,需傳遞過去(post、get、cookie、session)
- 變數不能直接拿到函數或類別中使用(除非有用global宣告)。
- 同樣名稱的變數,以後面定義的值為準。(相同的變數,後面的值會蓋掉前面的值)