學習資源
http://www.w3schools.com/php/php_intro.asp
echo vs. print
echo可顯示多行,print只能顯示一行。
echo "第一行
第二行";
以$宣告變數,變數名稱可由字母、底線及數字組成。不可以數字開頭。
變數名稱大小寫視為相
異
宣告時無需指定型別
可視範圍:local、global、static
函式中的變數為區域變數,不在函式中的變數則為全域變數。
函式中可用global關鍵字存取全域變數。
函式中可用static關鍵字宣告常存變數。
皆為global,以define()定義常數。
String, Integer, Float, Boolean, Array, Object, NULL
可用var_dump(...)顯示變數的型別及內含值
以function關鍵字定義函式
名稱大小寫視為相
同
用$宣告陣列,用array(...)設定陣列內容
三種陣列:索引式陣列、key-value陣列、多維陣列
可透過函式依內含值、鍵值以升、降冪方式排序
$_SERVER、$_REQUEST...
表單輸入驗證
透過htmlspecialchars()處理html特殊字元
透過trim()、stripslashes()去除不必要字元
例如可宣告以下函式處理使用者的輸入值:
function replace_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
date("Y/m/d")可傳回14/09/22
可透過mktime(hour,minute,second,month,day,year)設定時間
兩者的差別在找不到指定檔案時:require會出錯並停止執行,include只產生警告程式仍繼續執行
readfile(...)可將指定檔案內容全部讀出,細部處理可透過fopen(...)、fclose(...)、feof(...)、fgets(...)等f開頭函式。
寫入:setcookie("user", "Mary", time()+3600)
讀取:透過$_COOKIE全域變數存取,或可用print_r($_COOKIE)傾印所有cookie
透過isset()檢查特定cookie是否存在,如:isset($_COOKIE["user"])
在<html>之前呼叫session_start()初始化,接著便可以$_SESSION['key']存取。最後呼叫session_destroy()。
die("...")可在顯示錯誤訊息後中止執行。或可透過set_error_handler(...)函式指定錯誤處理函式。如下:
//error handler function
function customError($errno, $errstr) {
echo "Error: [$errno] $errstr";
}
//set error handler
set_error_handler("customError");
//trigger error
echo($test);
執行結果:
Error: [8] Undefined variable: test
也有try...catch.