/* 【數(shù)組函數(shù)】 */
//統(tǒng)計計算
count????????計算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€數(shù)
array_count_values??統(tǒng)計數(shù)組中所有的值出現(xiàn)的次數(shù)
array_product???????計算數(shù)組中所有值的乘積
array_sum???????????計算數(shù)組中所有值的和
range????????建立一個包含指定范圍單元的數(shù)組
array_chunk????????將一個數(shù)組分割成多個
array?array_chunk(array?$input,?int?$size[,?bool?$preserve_keys])?array_filter????用回調(diào)函數(shù)過濾數(shù)組中的單元array_slice?????從數(shù)組中取出一段
array?array_slice($arr,?$offset?[,$len?[,$preserve_keys]])array_keys????????返回數(shù)組中所有的鍵名
array?array_keys(array?$input[,?mixed?$search_value[,?bool?$strict]]?)
如果指定了可選參數(shù)?search_value,則只返回該值的鍵名。否則input數(shù)組中的所有鍵名都會被返回。array_values????返回數(shù)組中所有的值,并建立數(shù)字索引
array_merge合并一個或多個數(shù)組
一個數(shù)組中的值附加在前一個數(shù)組的后面。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。
如果數(shù)組包含數(shù)字鍵名,后面的值將不會覆蓋原來的值,而是附加到后面。
如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。array_merge_recursive遞歸地合并一個或多個數(shù)組
//搜索
in_array檢查數(shù)組中是否存在某個值
boolin_array(mixed$needle,array$haystack[, bool$strict])array_key_exists檢查給定的鍵名或索引是否存在于數(shù)組中
isset()對于數(shù)組中為NULL的值不會返回TRUE,而array_key_exists()會array_search在數(shù)組中搜索給定的值,如果成功則返回相應(yīng)的鍵名
array_combine創(chuàng)建一個數(shù)組,用一個數(shù)組的值作為其鍵名,另一個數(shù)組的值作為其值
如果兩個數(shù)組的單元數(shù)不同或者數(shù)組為空時返回FALSE。array_rand從數(shù)組中隨機取出一個或多個單元,返回鍵名或鍵名組成的數(shù)組,下標(biāo)是自然排序的
array_fill用給定的值填充數(shù)組
array_fill($start,$num,$value)array_flip交換數(shù)組中的鍵和值array_pad用值將數(shù)組填補到指定長度array_reverse返回一個單元順序相反的數(shù)組array_unique移除數(shù)組中重復(fù)的值array_splice把數(shù)組中的一部分去掉并用其它值取代
implode將數(shù)組元素值用某個字符串連接成字符串explode($delimiter,$str[,$limit])//使用一個字符串分割另一個字符串
$delimiter不能為空字符串""
array_map將回調(diào)函數(shù)作用到給定數(shù)組的單元上,只能處理元素值,可以處理多個數(shù)組
如果callback參數(shù)設(shè)為null,則合并多個數(shù)組為一個多維數(shù)組
array_walk對數(shù)組中的每個成員應(yīng)用用戶函數(shù),只能處理一個數(shù)組,鍵和值均可處理,與foreach功能相同
boolarray_walk(array&$array,callback$funcname[,mixed$userdata] )
//棧:
后進先出入棧和出棧會重新分配索引下標(biāo)array_push將一個或多個單元壓入數(shù)組的末尾(入棧)array_pop將數(shù)組最后一個單元彈出(出棧)使用此函數(shù)后會重置(reset())array指針。
//隊列:
先進先出隊列函數(shù)會重新分配索引下標(biāo)array_unshift在數(shù)組開頭插入一個或多個單元array_shift將數(shù)組開頭的單元移出數(shù)組使用此函數(shù)后會重置(reset())array指針。
//排序函數(shù)
sort對數(shù)組排序rsort對數(shù)組逆向排序asort對數(shù)組進行排序并保持索引關(guān)系arsort對數(shù)組進行逆向排序并保持索引關(guān)系ksort對數(shù)組按照鍵名排序krsort對數(shù)組按照鍵名逆向排序usort使用用戶自定義的比較函數(shù)對數(shù)組中的值進行排序uksort使用用戶自定義的比較函數(shù)對數(shù)組中的鍵名進行排序uasort使用用戶自定義的比較函數(shù)對數(shù)組中的值進行排序并保持索引關(guān)聯(lián)natsort用用“自然排序”算法對數(shù)組排序natcasesort用“自然排序”算法對數(shù)組進行不區(qū)分大小寫字母的排序array_multisort對多個數(shù)組或多維數(shù)組進行排序shuffle將數(shù)組打亂
引用傳遞參數(shù),返回bool值。
重新賦予索引鍵名,刪除原有鍵名
//差集
array_udiff_assoc帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)array_udiff_uassoc帶索引檢查計算數(shù)組的差集,用回調(diào)函數(shù)比較數(shù)據(jù)和索引array_udiff用回調(diào)函數(shù)比較數(shù)據(jù)來計算數(shù)組的差集array_diff_assoc帶索引檢查計算數(shù)組的差集
array_diff_key使用鍵名比較計算數(shù)組的差集array_diff_uassoc用用戶提供的回調(diào)函數(shù)做索引檢查來計算數(shù)組的差集
array_diff_ukey用回調(diào)函數(shù)對鍵名比較計算數(shù)組的差集array_diff計算數(shù)組的差集//交集array_intersect_assoc帶索引檢查計算數(shù)組的交集
array_intersect_key使用鍵名比較計算數(shù)組的交集array_intersect_uassoc帶索引檢查計算數(shù)組的交集,用回調(diào)函數(shù)比較索引
array_intersect_ukey用回調(diào)函數(shù)比較鍵名來計算數(shù)組的交集array_intersect計算數(shù)組的交集array_key_exists用回調(diào)函數(shù)比較鍵名來計算數(shù)組的交集array_uintersect_assoc帶索引檢查計算數(shù)組的交集,用回調(diào)函數(shù)比較數(shù)據(jù)array_uintersect計算數(shù)組的交集,用回調(diào)函數(shù)比較數(shù)據(jù)
extract($arr[,$type[,$prefix]])從數(shù)組中將變量導(dǎo)入到當(dāng)前的符號表(接受結(jié)合數(shù)組$arr作為參數(shù)并將鍵名當(dāng)作變量名,值作為變量的值)compact($var[,...])建立一個數(shù)組,包括變量名和它們的值(變量名成為鍵名而變量的內(nèi)容成為該鍵的值)
/*【偽類型】*/
mixed說明一個參數(shù)可以接受多種不同的(但并不必須是所有的)類型。number說明一個參數(shù)可以是integer或者float。callback回調(diào)函數(shù)
void ???????void作為返回類型意味著函數(shù)的返回值是無用的。
void作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)。
/*【數(shù)據(jù)庫操作】*/
#連接認(rèn)證mysql_connect連接并認(rèn)證數(shù)據(jù)庫#發(fā)送SQL語句,接收執(zhí)行結(jié)果mysql_query發(fā)送SQL語句
僅對select, show, explain, describe語句執(zhí)行成功返回一個資源標(biāo)識符,其他語句成功返回true。執(zhí)行失敗均返回false。#處理結(jié)果mysql_fetch_assoc從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組
每次只取回一條,類似each
結(jié)果集中記錄指針mysql_fetch_row從結(jié)果集中取得一行作為枚舉數(shù)組mysql_fetch_array從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有
arraymysql_fetch_array(resource$result[, int $ result_type ?] )
可選參數(shù)result_type可選值為:MYSQL_ASSOC,MYSQL_NUM和MYSQL_BOTH(默認(rèn))mysql_free_result釋放結(jié)果內(nèi)存#關(guān)閉鏈接mysql_close關(guān)閉連接
/*【類和對象】*/
#成員:類成員:類常量、靜態(tài)屬性、靜態(tài)方法
對象成員:非靜態(tài)屬性、非靜態(tài)方法
#除此外,類不能包含任何其他東西!!!
#類名、方法名、屬性名均不區(qū)分大小寫
# $this代表本對象,self代表本類,parent代表父類
#類和函數(shù)均可被事先編譯(僅作為最外層時)
#類的定義必須在單一的PHP區(qū)塊內(nèi),不能被多個PHP標(biāo)簽分割
//構(gòu)造方法
-具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此方法
void __construct([mixed$args[, $... ]] )-構(gòu)造方法所需參數(shù)由new實例化對象時,給類增加參數(shù)值。-構(gòu)造方法也可以被手動調(diào)用。- 5.3.3版本以前,支持于類名同名的方法作為構(gòu)造方法。-兩種沖突時,__construct優(yōu)先
//析構(gòu)方法
-析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當(dāng)對象被顯式銷毀時執(zhí)行。
void __destruct( void )#作用:釋放對象所占用的資源
#調(diào)用的時機
-腳本結(jié)束時所有資源均被釋放,包括對象
-手動刪除對象時
-保存對象的變量被賦予新值時(任何值,包括null)
-在使用exit()終止腳本運行時也會被調(diào)用
//靜態(tài)成員(static關(guān)鍵字)
-聲明類成員或方法為static,就可以不實例化類而直接訪問。
-靜態(tài)成員(屬性或方法)均屬于類,故不能通過$this或->訪問。
-靜態(tài)成員是所有對象共享,屬于類。
-靜態(tài)成員用類調(diào)用,非靜態(tài)成員用對象調(diào)用。#靜態(tài)屬性
-靜態(tài)屬性不可以由對象通過->操作符來訪問。
-靜態(tài)屬性只能被初始化為一個字符值或一個常量,不能使用表達式。 所以你可以把靜態(tài)屬性初始化為整型或數(shù)組,但不能指向另一個變量或函數(shù)返回值,也不能指向一個對象。#靜態(tài)方法
-由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量$this在靜態(tài)方法中不可用。
-用::方式調(diào)用一個非靜態(tài)方法會導(dǎo)致一個E_STRICT級別的錯誤。
//訪問解析操作符(::)
-可以用于訪問靜態(tài)成員、方法和常量,還可以用于覆蓋類中的成員和方法。
-當(dāng)在類的外部訪問這些靜態(tài)成員、方法和常量時,必須使用類的名字。
- self和parent這兩個特殊的關(guān)鍵字是用于在類的內(nèi)部對成員或方法進行訪問的。
//訪問辨析
-對象成員,內(nèi)部通過$this指定,外部通過對象名指定,均用->訪問,訪問屬性時不需加$。
對象名->屬性名 ???對象名->方法名()$this->屬性名$this->方法名()-類成員,內(nèi)部通過self或parent指定,外部通過類名指定,均用::訪問,訪問屬性時需加$。
類名::$屬性名類名::方法名() ???????self::$屬性名self::方法名()-特殊:也可以通過對象訪問類成員。(不建議)
對象名::$類屬性名$this::$類屬性名對象名::$類方法名()$this::類方法名()#對象成員訪問用->,類成員訪問用::
-無論是靜態(tài)方法還是非靜態(tài)方法,均可通過類或?qū)ο筮M行訪問。-靜態(tài)屬性通過類訪問,靜態(tài)方法通過對象訪問。-只有使用對象調(diào)用非靜態(tài)方法時,$this才可以使用!-靜態(tài)方法不可使用$this。-類可以調(diào)用對象方法,但注意方法內(nèi)不能有$this。-非靜態(tài)方法可以調(diào)用靜態(tài)屬性或靜態(tài)方法,反之不可以。
//類常量
-常量的值將始終保持不變。-在定義和使用常量的時候不需要使用$符號。-常量的值必須是一個定值,不能是變量,類屬性或其它操作(如函數(shù)調(diào)用)的結(jié)果。#定義:const常量名=常量值;
-不需要加public等訪問修飾限定符-類常量屬于類,使用類訪問,類名::類常量 或self::類常量
//自動加載對象
-在試圖使用尚未被定義的類時自動調(diào)用__autoload函數(shù)-自動加載使用到的類名文件(根據(jù)類名找相應(yīng)名稱的文件,故需類名與類文件名一致)-每個需要加載類的文件都需要存在__autoload函數(shù)-將__autoload函數(shù)寫入單獨的文件,每個需要用到類的文件再require該函數(shù)文件- __autoload參數(shù)是類名function__autoload($class_name) {
require_once$_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";
}
// $_SERVER["DOCUMENT_ROOT"]當(dāng)前運行腳本所在的文檔根目錄
-可以通過類名,來推導(dǎo)出類所在的文件名!-如果一個項目存在多個自動加載函數(shù)時,定義一個可以完成加載的普通函數(shù),并在函數(shù)之前使用spl_autoload_register注冊該函數(shù)。# spl_autoload_register
-注冊__autoload()函數(shù)
bool spl_autoload_register ([callback$autoload_function] )-可以注冊多個自動加載函數(shù),先注冊的先執(zhí)行-一旦注冊自動加載函數(shù),__autoload就失效。-注冊函數(shù)時,參數(shù)為函數(shù)名(注意加引號);注冊方法時,參數(shù)為數(shù)組#注冊類或?qū)ο蟮姆椒樽詣蛹虞d方法時,參數(shù)需為數(shù)組:
spl_autoload_register(array(__CLASS__, '__autoload'));
__CLASS__表示當(dāng)前類名,若是對象可用$this,詳細(xì)見手冊