3.
PHP變數與常數
一、 請善用註解(不管新手或老鳥)
- //這是PHP單行註解,自己一行,或者放在程式後面都可以
- /* 這是PHP多行註解,中間可以有很多行 */
- <!-- 這是 HTML 的註解,別搞混了 -->
- 把註解變成手冊
二、 PHP變數(用來暫時存放資料的東西...)
- PHP變數命名原則:以「$」為開頭,第一個字元只能是以英文(a-z或A-Z)或底線(_),數字是不能當作第一個字元的。
- 變數名稱是有大小寫之分的,例如$name、$Name和$NAME是完全不一樣的!
- 盡量使用有意義的變數名稱,$name絕對比$aaa來的好!
- $name="Tad"; //把tad字串指派給$name,其中=是「指定運算元」
三、 PHP變數範圍
- PHP變數只活在自己的檔案中,而且是暢行無阻的!(遇到函數或物件除外)
- PHP變數以最後指定的值為主,可以隨時重新指定其值。
四、 PHP可變變數
- $$name 這種寫法叫做可變變數。
五、 PHP的外部變數(來自外面的變數,或說變數的傳遞)
- 來自表單:端視<form>使用的method為何,預設為get,但一般建議用post。
- get傳輸:http://action指定網址?var1=val1&var2=val2&var3=val3...
- (1) 會得到$_GET['var1']的變數其值為val1、$_GET['var2']其值為val2...
- (2) 表單中有非 ASCII字元(如:上傳)或者值超過100字元時,get就不適用了。
- post傳輸:會在背景執行,沒有字數限制,二進位資料也可以傳。
- (1) 會得到$_POST['var1']的變數,其值為val1,依此類推。
- <input name="my.id">PHP會接收到:$_POST['my_id'](. 自動變成 _)。
- (1) $_REQUEST['var'] 可以接來自get、post、cookie方法傳來的變數。
六、 PHP 的超級全域變數(superglobals)
- 以「陣列」方式存在,超級全域變數可在任何地方被拿來使用(包括函數內)。
- $_SERVER:環境變數,可用phpinfo()觀察之,例如取得使用者來源IP
- $_GET、$_POST、$_REQUEST:來自表單的變數。
- $_COOKIE:給cookie用的全域變數,cookie是存在使用者電腦的一個小檔案
- $_SESSION:給session的全域變數,session是存在伺服器中的一個小檔案
- $_FILES:上傳檔案時會用到的超級全域變數。
七、 PHP常數:define("常數名稱","常數值");
- 先定義先贏,後面定義的無效。
- 常數可任意使用在任何地方,包括函數內、物件內。
- 常數名稱和變數遵循同樣的命名規則,其值只能是字串、數字、浮點數和布林值。
- 常數有分大小寫,通常習慣將常數名稱用大寫英文,最前面加上底線,以方便辨識。
- PHP有預先定義好一些常數:
- (1) __LINE__:傳回目前在檔案中的行數位置(或者說,此常數的所在行數)
- (2) __FILE__:傳回此常數所在檔案的完整路徑及檔案名稱。
- (3) __FUNCTION__:此常數會傳回函數名稱,php5有分大小寫,PHP4則均小寫。
- (4) __CLASS__:此常數會傳回該物件名稱,php5有分大小寫,PHP4則均小寫。
- (5) __METHOD__:傳回該物件方法的名稱。
八、練習
- 請根據講義「班級資料表」,設計一個add_class.php檔案,讓工作人員可以輸入班級資料。
- 表單的action請設定至save_class.php
- 輸入元件的name請參考講義上「欄位」名稱