PHP學習總結(一)
一.基礎知識
1.單雙引號皆可聲明字符串;雙引號中可以直接解析變量,又可以直接使用轉義
字符,單引號則不可以,最好使用單引號(效率高);
2.數據類型間的相互轉換:
setType(變量型,類
型);//int,integer,float,double,real,bool,Boolean,string,array,object;
$變量=intval(變量或值);
相關函數:
isset();empty();unset();//註銷變量;setType();getType();
is_bool();is_int();
define("常量名",值);
3.運算符號:
算術運算符:+ - * / % ++ --
字符串運算符:.
賦值運算符:= += -= *= /= %= ++ --
比較運算符號:> < >= <= ==(比較不轉換類型) ===(比較轉換類型) !
=或<> !==
邏輯運算符 &&或and ||或or !或not
位運算符: & | ^ << >> >>>
其他運算符:?:(三元運算符) '' @ =>(鍵名=>鍵值) -> :: & $
4.PHP的變量範圍:
gloabal//要通過這個關鍵字將全局變量包含到函數中才能使用
static//靜態變量只能聲明在函數中,不能在全局聲明;保存在靜態代碼段中
,只在第一次調用的時候聲明。
變量函數:$var=hell;$var();//將尋找與變量名值相同的函數 hello()
5.require:用於靜態包含;require_once
include:用於動態包含;include_once
6.數組的遍歷:
for語句循環遍歷//不是首選;
foreach循環遍歷,foreach(數組變量 as 下標變量=>值變量){}
while() list() each() 組合循環遍歷
each():需要一個數組參數,返回一個數組(0,1,key,value,)
list():list()=array(),數組中的元素個數要與list()中的參數個數相同
數組內部的指針控制函數
next(),prev(),reset(),end(),current(),key()//參數均爲數組,移動數組
指針
7.超全局數組:
$_REQUEST//經由GET,POST,COOKIE機制提交到腳本的變量,因此該數組不值得
信任,建議不去使用
8.數組相關函數:
array_values();
array_keys();
in_array();
array_key_exists();
array_flip();//交換數組中的鍵和值
array_count_values()//統計數組中所有的值出現的次數
array_filter()//用回調函數來過濾數組中的單元
arry_walk(),array_map()
排序函數:sort(),rsort(),usort()......
數據結構相關:array_push(),array_pop()//堆棧
array_unshift(),array_shitf()//隊列
二.面向對象
1.對象和數組都是複合類型
2.對象的三大特性:封裝,繼承,多態
封裝:使用private,protected,public實現;
繼承:父類--基類,子類--派生類;
extend//子類繼承父類的protected,public
重載:子類可重載父類方法,但是權限不能比父類低;
子類中編寫構造方法,父類中也有構造方法一定要去調用一次唄覆蓋的
那個構造方法。
對象->成員 類::成員
父類名::方法名();
parent::方法名();
多態:讓具有繼承關係的不同類對象,可以對相同名稱的成員函數調用產生
不同的反應效果。
3.構造方法:對象完成創建後第一個調用的方法__construct()
析構方法:對象被釋放之前最後一個自動調用的方法__destruct()
魔術方法:在類中寫了某個魔術方法,這個方法對象的功能就會添加上。
4.關鍵字:
final:只能修飾類和方法,不能修飾成員屬性(修飾的類不能被繼承和覆蓋)
static:可修飾成員屬性和方法,不能修飾類(可被同一個類的所有對象共享
)
靜態成員::類名::成員,在內部訪問其他成員 self::成員
self與$this的功能極其相似,但二者又不相同。$this不能引用靜態成員和常
量。self更像類本身,而$this更像是實例本身。
const:只能修飾成員屬性,類中聲明常量。訪問方式和static類似。
5.常用魔術方法:
__call()//在調用對象中不存在的方法的時就會出現系統報錯,然後退出程序
__toString()//這屆輸出應用對象時自動調用
__clone()//克隆對象使用clone去處理,$this代表副本,$that代表原本
__autoload()//唯一一個不再類中添加的方法,在頁面中使用類自動將類名傳
遞給這個參數。
serialize:參數是一個對象,返回來的就是串行後的二進制串
unserialize():參數就是對象的二進制串,返回來的就是新生成的對象
__sleep()
7.抽象類,接口,多態:
抽象類是一種特殊的類,接口是一種特殊的抽象類,而多態就要使用到抽象類
或接口。
抽象方法:沒有方法體的就是抽象方法;//abstract function test()
抽象類:只要有一個抽象方法就是抽象類,要使用修飾詞abtract.
其他不變,抽象類不能被實例化。
子類繼承抽象類時要重載抽象類中的抽象方法。
接口:接口中的所有方法都必須是抽象方法;
只能聲明常量,不能聲明變量,接口的成員訪問權限都必學是public;
抽象類中的最低權限是protected。
聲明方式interface 類名{}(抽象方法不適用abstract);
使用接口用關鍵字implements;
類--接口,抽象類--接口//implements
接口--接口:extend
可繼承多個接口,但是隻能繼承一個父類。
三.字符串的處理
php中的所有字符串處理函數,都不是在原字符串上修改的,而是返回一個新的
格式化後的字符串。
1.substr();//字符串截取
2.常用的字符串輸出函數:
echo()
print()
die()--exit()
printf()
sprintf()
3.常用的字符串格式化函數:
ltrim()
rtrim()
trim()//去掉空格
str_pad()//字符串兩邊填充內容
strtolower()//轉換成小寫
strtoupper()//轉換成大寫
ucfirst()//首字母轉換成大寫
ucwords()//每個單詞首字母大寫
n12br()//在字符串所有新行之前加入換行標記
htmllentities()
htmlspecialchars()//上面一個和這一個防止輸出HTML標籤輸出
stripslashes()//反引用一個斜線
strip_tags()//從字符串中去除HTML和PHP標記
number_format()//以千位分隔符方式格式化一個數字
strrev()//反轉字符串
md5();//加密
1.單雙引號皆可聲明字符串;雙引號中可以直接解析變量,又可以直接使用轉義
字符,單引號則不可以,最好使用單引號(效率高);
2.數據類型間的相互轉換:
setType(變量型,類
型);//int,integer,float,double,real,bool,Boolean,string,array,object;
$變量=intval(變量或值);
相關函數:
isset();empty();unset();//註銷變量;setType();getType();
is_bool();is_int();
define("常量名",值);
3.運算符號:
算術運算符:+ - * / % ++ --
字符串運算符:.
賦值運算符:= += -= *= /= %= ++ --
比較運算符號:> < >= <= ==(比較不轉換類型) ===(比較轉換類型) !
=或<> !==
邏輯運算符 &&或and ||或or !或not
位運算符: & | ^ << >> >>>
其他運算符:?:(三元運算符) '' @ =>(鍵名=>鍵值) -> :: & $
4.PHP的變量範圍:
gloabal//要通過這個關鍵字將全局變量包含到函數中才能使用
static//靜態變量只能聲明在函數中,不能在全局聲明;保存在靜態代碼段中
,只在第一次調用的時候聲明。
變量函數:$var=hell;$var();//將尋找與變量名值相同的函數 hello()
5.require:用於靜態包含;require_once
include:用於動態包含;include_once
6.數組的遍歷:
for語句循環遍歷//不是首選;
foreach循環遍歷,foreach(數組變量 as 下標變量=>值變量){}
while() list() each() 組合循環遍歷
each():需要一個數組參數,返回一個數組(0,1,key,value,)
list():list()=array(),數組中的元素個數要與list()中的參數個數相同
數組內部的指針控制函數
next(),prev(),reset(),end(),current(),key()//參數均爲數組,移動數組
指針
7.超全局數組:
$_REQUEST//經由GET,POST,COOKIE機制提交到腳本的變量,因此該數組不值得
信任,建議不去使用
8.數組相關函數:
array_values();
array_keys();
in_array();
array_key_exists();
array_flip();//交換數組中的鍵和值
array_count_values()//統計數組中所有的值出現的次數
array_filter()//用回調函數來過濾數組中的單元
arry_walk(),array_map()
排序函數:sort(),rsort(),usort()......
數據結構相關:array_push(),array_pop()//堆棧
array_unshift(),array_shitf()//隊列
二.面向對象
1.對象和數組都是複合類型
2.對象的三大特性:封裝,繼承,多態
封裝:使用private,protected,public實現;
繼承:父類--基類,子類--派生類;
extend//子類繼承父類的protected,public
重載:子類可重載父類方法,但是權限不能比父類低;
子類中編寫構造方法,父類中也有構造方法一定要去調用一次唄覆蓋的
那個構造方法。
對象->成員 類::成員
父類名::方法名();
parent::方法名();
多態:讓具有繼承關係的不同類對象,可以對相同名稱的成員函數調用產生
不同的反應效果。
3.構造方法:對象完成創建後第一個調用的方法__construct()
析構方法:對象被釋放之前最後一個自動調用的方法__destruct()
魔術方法:在類中寫了某個魔術方法,這個方法對象的功能就會添加上。
4.關鍵字:
final:只能修飾類和方法,不能修飾成員屬性(修飾的類不能被繼承和覆蓋)
static:可修飾成員屬性和方法,不能修飾類(可被同一個類的所有對象共享
)
靜態成員::類名::成員,在內部訪問其他成員 self::成員
self與$this的功能極其相似,但二者又不相同。$this不能引用靜態成員和常
量。self更像類本身,而$this更像是實例本身。
const:只能修飾成員屬性,類中聲明常量。訪問方式和static類似。
5.常用魔術方法:
__call()//在調用對象中不存在的方法的時就會出現系統報錯,然後退出程序
__toString()//這屆輸出應用對象時自動調用
__clone()//克隆對象使用clone去處理,$this代表副本,$that代表原本
__autoload()//唯一一個不再類中添加的方法,在頁面中使用類自動將類名傳
遞給這個參數。
serialize:參數是一個對象,返回來的就是串行後的二進制串
unserialize():參數就是對象的二進制串,返回來的就是新生成的對象
__sleep()
7.抽象類,接口,多態:
抽象類是一種特殊的類,接口是一種特殊的抽象類,而多態就要使用到抽象類
或接口。
抽象方法:沒有方法體的就是抽象方法;//abstract function test()
抽象類:只要有一個抽象方法就是抽象類,要使用修飾詞abtract.
其他不變,抽象類不能被實例化。
子類繼承抽象類時要重載抽象類中的抽象方法。
接口:接口中的所有方法都必須是抽象方法;
只能聲明常量,不能聲明變量,接口的成員訪問權限都必學是public;
抽象類中的最低權限是protected。
聲明方式interface 類名{}(抽象方法不適用abstract);
使用接口用關鍵字implements;
類--接口,抽象類--接口//implements
接口--接口:extend
可繼承多個接口,但是隻能繼承一個父類。
三.字符串的處理
php中的所有字符串處理函數,都不是在原字符串上修改的,而是返回一個新的
格式化後的字符串。
1.substr();//字符串截取
2.常用的字符串輸出函數:
echo()
print()
die()--exit()
printf()
sprintf()
3.常用的字符串格式化函數:
ltrim()
rtrim()
trim()//去掉空格
str_pad()//字符串兩邊填充內容
strtolower()//轉換成小寫
strtoupper()//轉換成大寫
ucfirst()//首字母轉換成大寫
ucwords()//每個單詞首字母大寫
n12br()//在字符串所有新行之前加入換行標記
htmllentities()
htmlspecialchars()//上面一個和這一個防止輸出HTML標籤輸出
stripslashes()//反引用一個斜線
strip_tags()//從字符串中去除HTML和PHP標記
number_format()//以千位分隔符方式格式化一個數字
strrev()//反轉字符串
md5();//加密
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.