適合php初學者的一些基礎知識,也可算是一些經驗累積吧,有需要的朋友,可以參考下。
PHP基礎 一、初識PHP PHP是與HTML混合使用的嵌入式語言。 1、PHP標記 預設標記 短標記 ?>,需在php.ini中將short_open_tag選項開啟 短標記和其他標記不提倡使用 2、關鍵字不區分大小寫,使用者自訂的類別名稱和函數名稱不區分大小寫,變數名稱區分大小寫 3、輸出 boolean print(參數) 傳回布林值 void echo(參數) 無回傳值echo的效率高一點 二、資料類型 1.比較兩個浮點數的通常方法是先移動若干小數位,然後轉換為整數資料再進行比較。 2、雙引號做分隔符號的字串支援變數名解析,單引號做分隔符號的字串不支援變數名解析。 $name="張三"; "$name"=>張三|| '$name'=>$name || "$name先生"=>空|| "{$name}先生"=>張三先生|| "${name}先生"=>張三先生 3、字串定義的方式:單引號,雙引號和heredoc( 4、物件類型必須明確的進行聲明。類別用關鍵字class定義,使用關鍵字new產生這個類別的實例,使用->符號類別存取類別中的屬性和方法 class car{public $cololr;function beep(){}}$mycar = new car; $mycar->color='red'; $mycar->beep(); 5、PHP是一種弱語言類型,變數的類型會根據賦予的值自行決定,而且往往在變數宣告的同時進行變數初步價值的賦值。 6、資料型別強制轉換時,只須將需要的型別名寫在變數前的括號內即可。 三、常數與變數 1、定義常數 define("常數名",表達式或值) 常數名建議全大寫,但不是必要的 使用常數 直接使用定義的常數名,無須在常數名前加"$" 預定義常數:_FILE_目前PHP程式檔案名稱 _LINE_目前PHP程式所在的行數(在哪指哪) 2、變數不需要明確的聲明,在變數賦初值時就對變數進行了聲明。如果變數沒有被設定初值,則其初值即為NULL。 3、變數的賦值:傳值賦值與引用賦值。如$a=&$b; 即b原來指向了一個存儲位置,引用賦值後,a也指向了這個存儲位置,這時,a或b的銷毀都不會對對方造成任何影響,但是如果其中一個的值改變了,則另一個也會作出相同的改變。 4、存取預定義變數之使用超全域變量,總共9個超全域變數 5、局部變數:函數內定義的變數 只能在函數內使用 全域變數:在函數外定義的變數 預設只能在函數外使用 要想在函數內使用全域變量,需要在函數內將變數以global聲明,或使用超全域變數數組&GLOBALS["變數名稱"] 在PHP中,只有函數能提供局部作用域。 超全域變數$GLOBALS包含了全部的變量 靜態變數的特性:只有在第一次被呼叫時進行初始化,函數結束後不銷毀,並且下次使用時,該變數仍保留原來的值。 靜態變數只能在函數內定義和使用。 可變變數:將變數的名字也當作一個變數來使用。 $a=b;$b=c;$$a=$b=c; 外部變數:使用GET方式能傳遞的資料最大為256字節,使用POST最大為2MB 四、流程控制(僅寫與java等其他語言的不同) 1.互動格式(冒號語法) 不建議使用,經典的比較直觀 2、foreach():此語法是專門為陣列設計的 第一種格式foreach(target_array as $value) statement 第二種格式foreach(target_array as $key=>$value) statement 3、break 數字:要跳出的結構的層數 contiue 數字:要跳出的結構的層數 4、exit語句可以結束目前整個腳本的執行,通常用於錯誤檢查。 exit; exit("錯誤原因"); die()是exit的別名 $conn=mysql_connect("localhost","root","") or die("無法連線到MySQL伺服器"); 五、數組 1.關聯數組與數字索引數組唯一的差別在於索引的類型。 2、數字索引數組 初始化:直接為陣列元素賦值array()函數 如果數組不存在,那麼為數組元素賦值的同時即可建立該數組 如果數組元素是按順序排列的數字,則在對數組進行初始化時,可以使用range()函數 range()有3個參數,第一個參數指定初始值,第二個參數指定終止值,第三個參數可選,用於指定步長 3、關聯數組 初始化:直接為數組元素賦值array()函數 4、與陣列相關的運算符 + 聯合 $a+$b 將$附件到$a之後,但是任何索引值衝突的元素將不會被加 == 等於 $a==$b 如果$a和$b包含相同元素,則回傳true(索引值和元素必須都相同) 除了順序,其他必須完全一樣 != 不等於 === 恆等 如果$a和$b包含相同順序的相同元素,則回傳true(索引值和元素必須都相同) 必須完全一模一樣 !== 不恆等 5、陣列的排序 boolean sort() 依數字和字母順序排列 排列後會給予新的索引值,原有索引值被刪除 void asort()依升序對陣列進行排序 排列後保留原來的索引關係 integer ksort() 依索引值升序排列 usort(數組,方法名)依使用者自訂方法進行排序 array_multisort() 一次對多個陣列進行排序 natsort() 依自然順序排序,排序後保留原有的索引關係 natcasesort() 自然排序,不區分大小寫 6、陣列的反向排序 rsort() 對數組元素依降序排列 arsort() krsort() 7、對陣列進行重新排序 boolean shuffle() 將陣列進行隨機排列 array array_reverse() 將陣列中的元素逆置 array array_flip() 將陣列中的索引與其元素值兌換 8、陣列的遍歷 current() 取得數組中目前指標所指的元素值 next()將數組的指標向後移動一位,並返回移動後指標所指向的元素的元素值 prev()將陣列的指標向前移動一位,並傳回移動後指標所指向的元素的元素值 reset()指標設定回陣列的起始位置 end() 將指標移到陣列的最後一個元素處 each()傳回數組中目前指標所指向的「索引/元素值」對,並將數組指標向後移動一位 傳回一個包含4個元素的數組,且該數組的索引分別為0,key,1,value key() 傳回數組目前指標所指向的索引值 array_walk()以相同的方式處理陣列中的每一個元素 array_reduce() 將自訂函數依序應用於陣列的每個元素 9.其他的陣列操作函數 list()從一個數組中一次提取多個值,並同時賦值給多個變量 count()/sizeof()計算數組中元素的數量 1 2 3 4 下一頁 尾頁 |