PHP 基礎篇一
Ø PHP是“PHP:Hypertext Preprocessor”的縮寫,中文名:“超文本預處理器”,是一種嵌入到HTML中的服務器端的腳本語言。
Ø PHP主要適用於Web開發領域。
Ø PHP 可在不同的平臺上運行(Windows、Linux、Unix、Mac OS X 等)。
Ø PHP 與目前幾乎所有的正在被使用的服務器相兼容(Apache、IIS 等)。
Ø PHP 提供了廣泛的數據庫支持,支持所有的主流數據庫。
Ø PHP語法吸收了C、Java、Perl的特點,入門門檻較低,易於學習。
Ø PHP主要特點:簡單,高效,免費,豐富的函數庫和可擴展庫,多操作系統支持,多數據庫支持
Ø PHP最大的二大特點:混編與開發效率高成本低。混編,如果放在以前, 那麽只能說我們PHP了,在模板引擎沒問世的時代,大喊一聲。web開發還有誰?舍我其誰!!!不過遠古時代已過,我們不能停止自己的腳步還老是向後看,而不踏著腳步繼續向前,那麽我們也是在滅亡的邊緣徘徊!
1.1、PHP基本語法
Ø PHP腳本可以放在HTML文件的任何位置;
Ø PHP腳本以 “<?php”開始,以“?>” 結束,純PHP代碼文件,可以省略“?>”結束符。
Ø PHP文件的默認擴展名是 .php;
Ø PHP 文件中可以包含:普通文本、HTML、CSS、JavaScript代碼和 PHP 代碼;
Ø PHP 代碼在服務器上執行,結果以純 HTML 形式返回給瀏覽器;
Ø PHP語言是區分大小寫的,但關鍵字和函數不分區大小寫;
Ø PHP中每行代碼結束,必須以英文下的分號(;)結束;
Ø 訪問PHP文件名或路徑上,都不能含有中文;
Ø 訪問PHP文件,必須通過域名或IP地址才能訪問。
1.2、PHP語句結束符
Ø PHP語句必須以英文下的分號(;
Ø PHP中的語法結構不需要結束符。如:for、while、do while、switch、foreach等。
Ø 單行PHP語句可以不寫結束符。如:<?php echo "hello" ?>
Ø PHP代碼的最後一行可以不寫結束符(不推薦)。
1.3、PHP註釋
Ø 單行註釋:// 或 #
Ø 多行註釋:/*註釋內容*/
Ø 註意:多行註釋不能相互嵌套,PHP註釋同樣不會在客戶端顯示。
2、PHP變量
2.1、變量基本語法
Ø 變量名稱只能包含字母、數字、下劃線。
Ø 變量名必須是以美元符號($)開始,但 不是變量名的一部分,說明其後跟一個變量而已。如:?name
Ø 變量名必須要有意義。
Ø PHP變量名是區分大小寫的。
Ø PHP變量名開頭可以是字母或下劃線,但不能是數字。
Ø PHP中的關鍵字也可以作為變量名,但不推薦,例如:、?break、、?null
Ø PHP不需要事先聲明變量,使用時直接賦值即可,例如:$age = 20
Ø PHP為弱數據類型語言,在定義變量時不需要指定變量類型,根據所賦的值確定變量類型。
Ø PHP變量的數據類型在程序運行過程中可以動態改變。
2.2、判斷變量是否存在 isset()
Ø 描述:檢測變量是否設置。
Ø 語法:bool isset ( mixed ?... ] )
Ø 註意:isset()只能用於變量,因為傳遞任何其它參數都將造成解析錯誤。
2.3、判斷變量是否為空 empty()
Ø 描述:檢查一個變量是否為空。
Ø 語法:bool empty ( mixed $var )
Ø 返回值:如果 var 是非空或非零的值,則 empty() 返回 FALSE。換句話說,“”、0、0.0、“0”、NULL、FALSE、array()、未賦值變量,則返回 TRUE。
Ø 註意:empty() 只檢測變量,檢測任何非變量的東西都將導致解析錯誤。
2.4、銷毀變量 unset()
Ø 描述:釋放(銷毀)給定的變量。
Ø 語法:void unset ( mixed ?... ] )
Ø 提示:使用 unset() 銷毀一個變量後,變量的值將變成NULL。使用 isset() 測試的結果為false。
Ø 註意:刪除變量,只是刪除變量名,並且斷開到變量值之間的引用而已,而變量值還在,該變量值將變成垃圾,由系統自動進行回收處理。
PHP回收機制:腳本在運行完成後,系統會自動回收內存,這也是我們經常不關閉資源的所在點。
2.5、可變變量
Ø 描述:可變變量是指該變量的名稱由另外一個變量的值來確定。換句話,一個變量的變量名又是一個變量的情況。
Ø 語法:$$var = $value
Ø 說明:可以給 賦值,也可以獲取?var 的值。
Ø 註意:可變變量在雙引號內輸出的方法“${$var}”。
$a = ‘b‘; $b = ‘c‘; $c = 100; echo $$$a;//結果為100 解析:$a=$b,$$b = $c,$c=100
2.6、打印變量
Ø 描述:打印變量的相關信息;
Ø 語法:void var_dump ( mixed ?... ] )
Ø 說明:此函數顯示關於一個或多個表達式的結構信息,包括表達式的類型與值。若是數組將遞歸展開值,通過縮進顯示其結構。
3、PHP超全局數組變量
3.1、超全局數組變量與局部變量和全局變量的區別
Ø 局部變量:在函數內部聲明的變量,就是局部變量,當函數執行完畢,局部變量就消失了。局部變量,只能在函數內部使用。
Ø 全局變量:在函數外部聲明的變量,就是全局變量。在 PHP 中,全局變量,在函數中不能使用,網頁執行完畢,全局變量消失。
Ø 超全局數組變量:系統定義的變量,就是超全局變量。該變量可以在任何地方直接使用。
static靜態變量:
Ø 靜態變量是一個特殊的局部變量,他的特點是:靜態變量的值不會在函數調用結束時被銷毀,而是會一直保留。也就是說,當再次調用函數時,該變量(的值)還能繼續使用。
3.2、$_SERVER常用參數
常用參數 | 含義 |
---|---|
REQUEST_URI | URL |
PHP_SELF | 正在執行腳本的文件名 |
SERVER_NAME | 當前運行腳本所在服務器主機的名稱 |
HTTP_HOST | 正在瀏覽當前頁面用戶的主機名 |
REMOTE_ADDR | 正在瀏覽當前頁面用戶的 IP 地址 |
REQUEST_METHOD | 訪問頁面時的請求方法 |
SERVER_NAME | 當前腳本運行服務器的主機名 |
SERVER_ADDR | 當前腳本所在的服務器IP |
4、PHP變量的傳值方式
4.1、值傳遞
Ø 值傳遞又稱拷貝傳值:就是將一個變量的“值”拷貝一份傳給另一個變量。此時兩個變量的值完全一樣,但兩個變量是相互獨立的,沒有任何聯系,修改其中一個變量的值,另一個變量值不會改變。
Ø 在PHP中,字符串型、整型、浮點型、布爾型、NULL、數組,默認使用的是拷貝傳值方式。
4.2、引用傳遞
Ø 引用傳遞,又稱“傳地址”,就是將一個變量的“數據地址”拷貝一份給另一個變量,兩個變量指向同一個數據,改變其中一個變量的值,另一個變量的值也將改變。
Ø 在PHP中,對象和資源,默認使用的是引用傳值方式。
Ø 如果想讓“值傳遞”的變量,變成“引用傳遞”,只需要在引用的變量前加 & 符號即可
Ø 提示:對於海量數據,引用傳遞要比值傳遞速度快很多。
Ø 最重要就是當 unset 一個引用,只是斷開了變量名和變量內容之間的綁定。這並不意味著變量內容被銷毀了。
5、PHP常量
5.1、常量的概念
Ø 常量就是值永遠不變的量,例如:圓周率、身份證號
Ø 常量一旦定義就無法更改或撤銷定義,常量無法刪除。
Ø 常量的值可以是:字符串型、整型、浮點型、布爾型、null、數組(PHP7新加);
Ø 常量的值不能是對象和資源;
註意:與變量不同,常量永遠是全局的,在腳本任何地方都可以訪問。
5.2、常量的命令規則
Ø 常量的命名規則與變量一樣,只能包含字母、數字、下劃線。
Ø 常量名前不帶“$”符號。例如:DB_HOST、DB_USER、DB_PASS
Ø 常量名強烈建議全大寫,與變量區分開來。
Ø 語法格式:bool define ( string ?value [, bool $flag = false ] )
Ø 參數說明:1.必填參數常量的名稱,必填參數常量的值,可選填是否大小寫敏感默認是大小寫敏感!
5.3、判斷常量是否定義
Ø 描述:檢查某個名稱的常量是否存在
Ø 語法:bool defined ( string $name )
Ø 返回值:如果該名稱的常量已定義,返回 TRUE;未定義則返回 FALSE。
Ø 註意:defined()只能檢查常量,不能檢查變量或函數。
5.4、預定義常量
預定義常量名 | 含義 |
---|---|
PHP_VERSION | PHP版本號 |
PHP_OS | PHP運行平臺 |
M_PI | 圓周率 |
TRUE | 是關鍵字,也是常量 |
FALSE | Ø 是關鍵字,也是常量 |
PHP_INT_MAX | 最大整數,即9223372036854775807(2^63-1) |
PHP_INT_MIN | 最小整數,即-9223372036854775808(-2^63) |
Ø PHP的預定義常量大約有900多個,記住點常用就OK了當然,如果你想全部記住也是沒關系的(大神讓我舔下好嗎)
Ø獲取系統中的所有預定義常量:print_r(get_defined_constants(true));
5.5、魔法常量
Ø所謂“魔術常量”就是這些常量的值,會根據所在的位置而發生改變,即:形式是常量,但值可變。
魔法常量名 | 含義 |
---|---|
DIR | 當前文件所在的目錄 |
FILE | 當前文件絕對路徑 |
LINE | 當前行號 |
FUNCTION | 當前函數名稱 |
CLASS | 當前類名稱 |
METHOD | 當前方法名稱 |
NAMESPACE | 當前空間名稱 |
6、PHP數據類型
6.1、數據類型分類
PHP變量本身沒有類型,變量類型取決變量值的類型。
PHP有8種數據類型,分為三類:
Ø 標量數據類型(4個):整型(integer)、浮點型(float、double)、布爾型(boolean)、字符串型(string)
Ø 復合數據類型(2個):數組(array)、對象(object)
Ø 特殊數據類型(2個):資源(resource)、空值(NULL)
6.2、判斷變量數據類型
函數 | 含義 |
---|---|
is_string() | 檢測變量是否是字符串 |
is_bool() | 檢測變量是不是布爾型 |
is_int() | 檢測變量是不是整型 |
is_float() | 檢測變量是不是浮點型 |
is_numeric() | 檢測變量是否為數字或數字字符串,表單發送的都是字符串數據。 |
is_null() | 檢測變量是否為 NULL |
is_array() | 檢測變量是否是數組 |
is_object() | 檢測變量是否是一個對象 |
is_resource() | 檢測變量是否為資源類型 |
6.3、數據類型的知識點集合
1、整型的表達式
Ø 整型數據類型可以是正數,也可以是負數,負數在數字前面加上“-”符號來表示;
Ø 10進制表示:$a = 100
Ø 8進制表示(以0開頭):$a = 0777
Ø 16進制表示(以0x開頭):$a = 0xFF9900
Ø 2進制表示(以0b開頭):$a = 11001100
Ø 在32位的操作系統中,整型的有效範圍是-2147483648到+2147483647(2^31-1)。
Ø 在64位的操作系統中,整型的有效範圍是-9223372036854775808到9223372036854775807(2^63-1)
Ø 超出範圍,解析為false
2、浮點數的表達式
Ø 浮點數也就是我們所說的小數,在PHP中我們對數值進行了細分:整型與浮點型,像在javascript中就沒有對數值進行細分,小數整數都是數值
Ø 在我們對浮點數進行比較時,不太精確,最好的做法就是把它轉換成整數再去比較
3、單引號與雙引號的區別
Ø 單引號只能輸出變量的名,而不能輸出變量的值,且單引號的轉移字符只有:\‘
Ø 雙引號能解析變量,且所有轉移字符都可以使用
Ø 還有個說法我也不知道對不對:單引號因為不需要解析變量,它的速度高於雙引號,而且推薦在PHP程序中使用單引號!!!(不對請糾正)
//定義一個雙引號長字符 註意:表示字符串的結束,必須放在行首,不能縮進,單獨一行,特殊字符不需要轉義!!! $str = <<<php //相當於雙引號的作用 php; //定義一個單引號長字符 註意:跟在後面的標識符要用單引號括起來!!! $str = <<<‘php‘ //相當於單引號 php;
4、空型
Ø 特殊的 NULL 值表示一個變量沒有值,NULL 類型唯一可能的值就是 NULL
Ø NULL 類型只有一個值,就是不區分大小寫的常量 NULL
如果有什麽不正確的地方,也請指正!
PHP 基礎篇一