一、初識PHP
PHP是一種伺服器端HTML-嵌入式腳本描述語言,其最強大且重要的特徵就是跨平台和物件導向。
PHP是B/S(瀏覽器/伺服器)體系結構,屬於三層結構。
1、PHP語言的優點:
1.高安全性。
2、跨平台特性。
3、支援廣泛的資料庫。
4、易學性。
5、執行速度快。
6、免費。
7、模板化。
8、支援物件導向與流程。
9、內嵌zend加速引擎。
2、PHP5的新特性:
1、建構子和分析構子。
2、對象的引用。
3、對象的克隆。
4、物件中的私人、公有與受保護模式。
5、介面。
6、抽象類別。
7、__call。
8、__set和__get。
9、靜態成員。
3、擴充函式庫
從PHP5開始,PHP即新增了內建的標準擴充庫,包括XML擴充函式庫-DOM、SimpleXML、SPL、SQLite等,而像MySQL、mysqli、overload、gd2等這些函式庫則被放在pecl外部擴充庫。需要時在php.ini。在設定檔中選擇載入。
在windows下載入擴充庫,需修改php.ini檔案來完成。使用者也可以在腳本中透過 dll() 函數來動態載入。 php擴充庫的DLL檔都具有php_前綴。
編輯php.ini檔案時,應注意以下幾點。
1、需要修改exiension_dir設定使其指向使用者放置擴充庫的目錄或方式PHP_*.dll檔案的位置。 如:extension_dir = C:phpextensions
2、要在php.ini檔案中啟用某擴充庫,需要去掉extension = php_*.dll 前的註解,需要去掉extension = php_*.dll 前的註解符號,即將需要載入的擴充符號前的分好" ; 。 如 ;extension = php_bz2.dll
3、有些擴充程式庫需要額外的dll才能運作。其中一部分dll檔案綁定在發行包中,但還有一些,如Oracle所需的dll並沒有保定在發行包中。
二、正式學習php
?>
其中"" 是php的標記對。在標記對中所有的程式碼都當作php程式碼來處理。
echo 是輸出語句。
1、 php總共支援4中標記風格。
(1)XML樣式
echo "xml script language = "php">
echo "這是腳本風格";
(3)簡短風格
echo "這是簡短風格";?>
(4)ASP %>
2、 php註解支援3種。
c++風格單行註解
echo 「C++風格」; //這就是C++風格
風格
多行註解*/?>shell風格註解 echo "shell腳本風格"; #這裡的內容看不到的。 ?>三、php的資料型態:1、標量資料型別 標量資料型態是資料結構中最基本的單元,只能儲存一個資料。 布林型:是最簡單的類型。只有兩個值,真和假。 字串型:字串就是連續的字元序列,可以是電腦所能表示的一切字元的集合。 整數:只能包含整數。這些資料類型可以是正數或負數。 浮點型:浮點數資料型別用來儲存數字,和整數不同的是它有小數位。 2、複合資料型別 複合資料型別包含兩種,分別為陣列與物件。
陣列:一組相同類型的變數的集合。
物件:物件是類別的實例,使用new指令來建立。
3、特殊資料型別
特殊資料型別包含資源及空值兩種。
資源:資源是一種特殊變量,又稱為句柄,保存到外部資源的一個引用。資源是透過專門的函數來建立和使用的。
空值:特殊的值,表示變數沒有值,唯一的值就是null。
4、轉換資料型別
雖然php是弱型別語言,但有時仍需要用到型別轉換。
boolean 轉換成布林類型
string 轉換成字型
轉換成浮點型 array 轉換為陣列 is_bool檢查變數是否為布林型別 例如 is_bool(true) is_string檢查變數是否為字串型別 is_float is_null 檢查變數是否為nullis_array檢查變數是否為陣列型別 is_objcct檢查變數是否為陣列型別 is_numeric檢查變數是否為數字或由數字組成的字串。 四、php常數1、聲明和使用常數 常數可以理解為值不變的量。常數值被定義後,在腳本的其他任何地方都不能改變。 一個常數由英文字母、底線和數字組成,但數字不能作為首字母出現。 在php中使用define()函數定義常數。 格式 define(string constant_name, mixed value , case_sensitive = true) constant_name 必選參數。常量名稱,即標識符。 value 時中使用參數。常量的值。 case_sensitive 可選參數。指定是否大小寫敏感,設定為true,表示不敏感。 取得常數的值有兩種方法:一種是使用常數名直接取得值;另一種是使用constant()函數,constant()函數和直接使用常數名輸出的效果是一樣的,但函數可以動態地輸出不同的常數,使用上要靈活方便的多。 2、預設常數 __FILE__ 預設常數,php 預設常數,php程式行數 兩條下劃線 PHP_VERSJON 內建常數 量,執行php解析器的作業系統名稱 TRUE 常數 此常數為假值(false) NULL 一個null E_WARNNG 此常數指到最近的警告處 E_PARSE 此常數為發生不尋常處的提示但不一定是錯誤處 五、變數1 、變數宣告及使用和許多語言不同,在php中使用變數之前不需要宣告變量,只需為變數賜值即可。 php中的變數名稱以$和識別符表示,變數名是區分大小寫的。 變數賦值,是指給變數一個具體的資料值,對於字串和數字類型的變量,可以透過「=」來實現賦值。
變數名稱不能以數字字元開頭。
變數名稱不能以字母和底線「_」以外的其他字元開頭。
2、變數作用域
變數在使用時,要符合變數的定義規則。變數必須在有效範圍內使用。
局部變數 在函數的內部定義的變數,其作用域是所在函數。
全域變數 被定義在說有幻術以外的變量,其作用域是整個php文件,但在使用者自訂函數內部是不可用的,如果希望在使用者自訂函數內部使用全域變量,則要使用global關鍵字聲明全域變數。
靜態變數 能夠在函數呼叫結束後丟保留變數值,當再次回到其作用域時,又可以繼續使用原來的值,而一般變數是在函數呼叫結束後,其儲存的資料值即被清除,所佔的記憶體空間也被釋放。使用靜態變數時,先要用關鍵字static來宣告變量,把關鍵字static放在要定義的變數之前。
3、可變變數
可變變數是一種獨特的變量,他允許動態改變一個變數名稱。其運作原理是該變數的名稱由另一個變數的值來決定,實作過程就是在變數的前面再多加一個美元符號「$」
4、php預定義變數
php也提供了許多非常實用的預先定義變數,透過這些預先定義變數可以取得到使用者會話、使用者作業系統的環境和本機作業系統的環境等資訊。
$_SERVER [ ' SERVER_ADDR ' ]目前執行腳本所在的伺服器的IP位址
$_SERVER [ ' SERVER_NAME ' ]目前執行腳本所在伺服器主機的名稱。如果該腳本運行在一個虛擬主機上,則名稱是由虛擬主機所設定的值決定。
$_SERVER [ ' REQUEST_METHOD ' ]造訪頁面時的請求方法。如get、head、post、put等,如果要求的方式是head,php腳本將在輸出頭資訊後中止(這表示在產生任何輸出後,不再有輸出緩衝)
$_SERVER [ ' REMOTE_ADDR ' ]正在瀏覽目前頁面使用者的ip位址
$_SERVER [ ' REMOTE_HOST ' ]正在瀏覽目前頁面使用者的主機名,反向網域解析基於該使用者的REMOTE_ADDR
$_SERVER [ ' REMOTE_PORT ' ] 使用者連接到伺服器所提供使用的連接埠
$_SERVER [ ' SCRIPT_FILENAME ' ] 目前執行腳本的絕對路徑名稱。
注意,如果腳本在CLI中被執行,作為相對路徑,如file.php或.../file.php,$_SERVER [ ' SCRIPT_FILENAME' ] 將包含使用者指定的相對路徑
$_SERVERVERVERVERVER [ ' SERVER_PORT ' ]伺服器所使用的端口,預設為80。如果使用SSL安全連接,則這個值為使用者設定的HTTP連接埠。
$_SERVER [ ' SERVER_SIGNATURE ' ] 包含伺服器版本和虛擬主機名稱的字串。
$_SERVER [ ' DOCUMENT_ROOT ' ]目前運行腳本所在的文檔根目錄。在伺服器設定檔中定義。
$_COOKIE 透過HTTPCookie傳遞到腳本的訊息,這些cookie多數是由執行php腳本時透過setcookie()函數設定的。
$_SESSION 包含與所有會話變數相關的資訊。 $_SESSION變數主要應用於會話控制和頁面之間值的傳遞。
$_POST 包含透過POST方法傳遞的參數的相關資訊。主要用於取得透過post方法提交的資料。
$_GET 包含透過GET方法傳遞的參數的相關資訊。主要用於取得透過GET方法提交的資料。
$GLOBALS 由所有已定義全域變數所組成的陣列。變數名就是該數組的索引。它可以稱得上是所有超級變數的超級集合。