第一天 PHP的基本語法01
=======================================================================================================
1. PHP在Web開發中的應用
1.1 PHP是什麼
① PHP(Hypertext Preprocessor縮寫)超級文本預處理器。
② PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。
③ PHP是目前最流行的網站開發語言( B/S結構)。
④ PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法 。
⑤ 支持幾乎所有流行的數據庫以及操作系統
1.2 PHP在web中的功能
收集表單數據
生成動態網頁
字符串處理
動態輸出圖像
服務器端文件系統操作
編寫數據庫支持的網頁
會話跟蹤控制
處理XML文件
支持利用大量的網絡協議
服務器端的其他相關操作
1.3 PHP特點
是開放源代碼的,服務器端的腳本語言.
獨立於操作系統,可以運行在幾乎所有系統中.
支持大部分的服務器,如apache,IIS
支持大量的數據庫
1.4 腳本語言、解釋型語言
① 腳本語言
腳本簡單的說就是一條條的文字命令,這些文字命令是可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,
將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因爲腳本在執行時多了一道翻譯的過程,所以它比二進制程序執行效率要稍低一些。
② 解釋型語言
編譯型語言 解釋型語言
相對於編譯型語言存在的,源代碼不是直接翻譯成機器語言,而是先翻譯成中間代碼,再由解釋器對中間代碼進行解釋運行
2. PHP的開發步驟
① 使用編輯器創建一個帶有源代碼的文件
② 將文件上傳到web服務器上
③ 通過瀏覽器訪問WEB服務器瀏覽程序
3. PHP語言標記
3.1 文件名後綴爲.php PSR-1 基本代碼規範 規定php腳本文件爲編碼utf8無bom格式
3.2 我們用<?php來表示PHP標識符的起始,然後放入PHP語句並通過加上一個終止標識符?>來退出PHP模式。
3.3 php可以嵌入到html中使用
① 文件名後綴必須是php
② php可以嵌套到html任意位置,body中,屬性中,css中,不論寫在哪裏都可以運行輸出結果
③ php代碼要被 php標記(<?php ?>)包裹
3.4 四種不同的標記
① 標準風格
<?php ?>
② 長風格
<script language='php'></script>
③ 短風格
此風格需要在php.ini配置文件中開啓short_open_tag
④ asp風格
此風格需要在php.ini配置文件中開啓asp_tags
3.5 PSR-1 對php標記的規範
① 只可以 標準風格 和 短風格 兩種標記
② 只有php代碼純php文件,省略結束標記
4. 指令分隔符 ;
PHP同C或Perl以及Java一樣,語句分爲兩種:
① 一種是在程序中使用結構定義語句例如流程控制、函數與類的定義等,是用大括號來標記代碼塊,在大括號後面不要用分號。
② 另一種在程序中使用功能執行語句,如變量的聲明、內容的輸出、函數的調用等,是用來在程序中執行某些特定功能的語句,
這種語句也可稱爲指令,PHP需要在每個指令後用分號結束。
③ 和其他語言不一樣的是,在PHP中右括號(?>)前的分號不是必選的。
5. 程序註釋
5.1 什麼是註釋
對於閱讀代碼的人來說,註釋其實就相當於代碼的解釋和說明。註釋可以用來解釋腳本的用途、腳本編寫人、爲什麼要按如
此的方法編寫代碼、上一次修改的時間等等。
5.2 PHP支持C、C++和Shell腳本風格的註釋,如下:
//... ... 單行註釋
/* ... ... */多行註釋 (注意:不能嵌套)
# ... ... 腳本註釋
5.3 註釋的優點:
① 寫幫助文檔
② 調試程序
5.4 注意: 註釋要寫在代碼的上面或是右邊
6. 在程序中使用空白符的處理
6.1 註釋事項
① 一般來說,空白符(空格、Tab製表符、換行)在PHP中無關緊要。可以將一個語句展開成任意行,或者將語句緊縮在一行。
② 可以利用這個靈活的格式來使代碼更具有可讀性(通過排列分配、縮進等)。一些懶惰的程序員利用這種自由的格式創建根本
無法閱讀的代碼,這是不提倡的。
6.2 PSR-1 基本代碼規範 (FIG 制定的PHP規範,簡稱PSR,是PHP開發的事實標準。)
使用兩個空行
一個源文件的兩個代碼段
兩個類的聲明
在以下情況使用一個空行
兩個函數聲明之間
函數內的局部變量和函數的第一條語句之間
註釋或者單行註釋之前
一個函數的兩個邏輯代碼段
代碼縮進
代碼必須 使用4個空格來進行縮進,禁止使用tabs
代碼結尾
所有的PHP文件必須使用Unix的LF作爲行結尾
所有的PHP文件必須是以單一的空白行結尾
在純PHP文件中必須省略文件結尾的?>標記
7. 變量
7.1 變量的聲明
① 變量的定義
變量是用於臨時存儲值的容器。這些值可以是數字、文本、或者複雜得多的排列組合。是用於跟蹤幾乎所有類型信息的簡單工具。
② PHP變量特定
PHP是一種非常弱的類型語言。在大多數編程語言中,變量只能保持一種類型的數據,而且這個類型必須在使用變量前聲明,
例如C語言中。而在PHP中,變量的類型通常不是由程序員設定的,確切地說,是根據該變量使用的上下文在運行時(即變量
的值)決定的。 PHP不要求在使用變量之前聲明變量,當第一次給一個變量賦值時,你才創建了這個變量。
③ 定義變量
PHP的變量聲明是以$符開始的,後面跟大小寫字母,數字和下劃線,但不能以數字開頭。
可以使用函數unset( )釋放指定的變量,isset( )函數檢測變量是否設置,empty( )函數檢查一個變量是否爲空。
7.2 變量的命名
① 變量名與 PHP 中其它的標籤一樣遵循相同的規則。一個有效的變量名由字母或者下劃線開頭,後面跟上任意數量的字母,數字,或者下劃線。
② 變量的名稱是對大小寫敏感的。
③ 但內置結構和關鍵字以及用戶自定義的類名和函數名都是不區分大小寫的。如:echo、while、function名稱等。
7.3 可變變量
7.4 變量的引用賦值
8. 數據類型
8.1 類型介紹
① PHP 支持八種原始類型。
四種標量類型:
布爾型(boolean)
整型 (integer)
浮點型(float)(浮點數,也作double)
字符串(String)
兩種複合類型:
數組(Array)
對象(Object)
最後是兩種特殊類型:
資源(Resource)
NULL
② 在PHP中,變量的類型通常不是由程序員設定的,確切地說,是根據該變量使用的上下文在運行時(即變量的值)決定的。
③ 使用函數var_dump( )查看表達式的值和類型
8.2 布爾型(boolean)
① 這是最簡單的類型。boolean 表達了真值,可以爲 TRUE 或 FALSE,即“真”或“假”。
② 當其他類型轉換爲 boolean類型 時,以下值被認爲是FALSE:
布爾值 FALSE
整型值 0(零)
浮點型值 0.0(零)
空白字符串和字符串"0"
沒有成員變量的數組
沒有單元的對象(僅適用於 PHP 4)
特殊類型 NULL(包括尚未設定的變量)
所有其它值都被認爲是 TRUE(包括任何資源)。
8.3 整型(integer)
① 整型值可以用十進制,十六進制或八進制符號指定,前面可以加上可選的符號(- 或者 +)代表數值的正負。
②整數值有最大的使用範圍,這與平臺有關,對於32位系統而言範圍:-2147483648~2147483647,PHP不支持無符號整數。
如果超出了則變成了float型。
8.4 浮點型(float或double)
① 浮點數(也叫雙精度數或實數)是包含小數部分的數。通常用來表示整數無法表示的數據,如金錢值、距離值、速度值等。
浮點數的字長和平臺相關,儘管通常最大值是 1.8e308 並具有 14 位十進制數字的精度。
② 可以用科學計數法表示
③ 浮點數的精度問題
8.5 字符串(String)
① string是一系列字符。在 PHP 中,字符和字節一樣,也就是說,一共有 256 種不同字符的可能性。
這也暗示 PHP 對 Unicode 沒有本地支持。
② 一個字符串變得非常巨大也沒有問題,PHP 沒有給字符串的大小強加實現範圍,所以完全沒有理由擔心長字符串。
③ 字符串的三種定義方式
單引號
雙引號
定界符
8.6 數組(Array)
① PHP 中的數組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優化,
因此可以把它當成真正的數組來使用,或列表(矢量),散列表(是圖的一種實現),字典,集合,棧,隊列以及更多可能性。
因爲可以用另一個 PHP 數組作爲值,也可以很容易地模擬樹。
② PHP中可以使用多種方式構建一個數組,
8.7 對象(Object)
① 在PHP中,對象和數組一樣都是一種複合數據類型。但對象是一種更高級的數據類型。一個對象類型的變量,
是由一組屬性值和一組方法構成,其中屬性表明對象的一種狀態,方法通常用來表明對象的功能。
8.8 資源類型(Resource)
① 資源是一種特殊變量,保存了到外部資源的一個引用。資源是通過專門的函數來建立和使用的。
② 由於資源類型變量保存有爲打開文件、數據庫連接、圖形畫布區域等的特殊句柄,因此無法將其它類型的值轉換爲資源
③ PHP4Zend引擎引進了資源計數系統,可以自動檢測到一個資源不再被引用了(和 Java 一樣)。
這種情況下此資源使用的所有外部資源都會被垃圾回收系統釋放。
8.9 NULL類型
① 特殊的 NULL 值表示一個變量沒有值。NULL類型唯一可能的值就是NULL,表示一個變量的值爲空,NULL不區分大小寫。
② 在下列情況下一個變量被認爲是 NULL:
被賦值爲 NULL值的變量。
尚未被賦值的變量。
被unset()函數銷燬的變量。
8.10 僞類型介紹
① 僞類型並不是PHP語言中的基本數據類型,只是因爲PHP是弱類型語言,所以在一些函數中,一個參數可以接收多種類型的數據,
還可以接收別的函數作爲回調函數使用。
② 僞類型
mixed:說明一個參數可以接受多種不同的(但並不必須是所有的)類型。
number:說明一個參數可以是 integer 或者 float。
callback:有些諸如 call_user_function() 或 usort() 的函數接受用戶自定義的函數作爲一個參數。
Callback 函數不僅可以是一個簡單的函數,它還可以是一個對象的方法,包括靜態類的方法
一個 PHP 函數用函數名字符串來傳遞。可以傳遞任何內置的或者用戶自定義的函數,除了
array(),echo(),empty(),eval(),exit(),isset(),list(),print() 和 unset()。
9. 數據類型之間的互相轉換
9.1 類型轉換
① PHP 在變量定義中不需要(或不支持)明示的類型定義;變量類型是根據使用該變量的上下文所決定的。
② 類型轉換是指將變量或值從一種數據類型轉換成其他數據類型。轉換的方法有兩種:
自動轉換
強制轉換
9.2 強制類型轉換
PHP 中的類型強制轉換和 C 中的非常像:在要轉換的變量之前加上用括號括起來的目標類型
(int),(integer) - 轉換成整型
(bool),(boolean) - 轉換成布爾型
(float),(double),(real) - 轉換成浮點型
(string) - 轉換成字符串
(array) - 轉換成數組
(object) - 轉換成對象
注: 注意在括號內允許有空格和製表符,爲了將一個變量還原爲字符串,還可以將變量放置在雙引號中。
9.3 自動類型轉換
布爾環境
字符串環境
數值環境
9.4 變量類型的測試函數
is_bool():判斷是否是布爾型
is_int()、is_integer()和is_long():判斷是否爲整型。
is_float()、is_double()和is_real():判斷是否爲浮點型
is_string():判斷是否爲字符串
is_array():判斷是否爲數組
is_object():判斷是否爲對象
is_resource():判斷是否爲資源類型
is_null():判斷是否爲null
is_scalar():判斷是否爲標量
is_numeric():判斷是否是任何類型的數字和數字字符串
is_callable():判斷是否是有效的函數名
bool settype ( mixed var, string type )是將變量 var 的類型設置成 type。
10. 常量
10.1 常量的定義與使用
① 常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執行期間一個常量一旦被定義,就不能再改變或取消定義。
② 常量默認爲大小寫敏感。按照慣例常量標識符總是大寫的。
③ 量名和其它任何 PHP 標籤遵循同樣的命名規則。合法的常量名以字母或下劃線開始,後面跟着任何字母,數字或下劃線。
④ 常量的範圍是全局的。不用管作用域就可以在腳本的任何地方訪問常量。
⑤ 我們可以用 define() 函數或 const語法來定義常量。
10.2 常量與變量
① 常量和變量不同:
常量前面沒有美元符號($);
常量只能用 define() 函數定義,而不能通過賦值語句;
常量可以不用理會變量範圍的規則而在任何地方定義和訪問;
常量一旦定義就不能被重新定義或者取消定義;
常量的值只能是標量。
② 可以用函數 constant() 來讀取常量的值。
③ 用 get_defined_constants() 可以獲得所有已定義的常量列表
10.3 預定義常量
① 魔術常量
__LINE__
__FILE__
__FUNCTION__
__CLASS__
__METHOD__
② 系統常量
PHP_OS: 執行PHP解析的操作系統名稱
PHP_VERSION: 當前PHP服務器的版本。