/* 【數(shù)組函數(shù)】 */
//統(tǒng)計(jì)計(jì)算
count????????計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù)
array_count_values??統(tǒng)計(jì)數(shù)組中所有的值出現(xiàn)的次數(shù)
array_product???????計(jì)算數(shù)組中所有值的乘積
array_sum???????????計(jì)算數(shù)組中所有值的和
range????????建立一個(gè)包含指定范圍單元的數(shù)組
array_chunk????????將一個(gè)數(shù)組分割成多個(gè)
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????????返回?cái)?shù)組中所有的鍵名
array?array_keys(array?$input[,?mixed?$search_value[,?bool?$strict]]?)
如果指定了可選參數(shù)?search_value,則只返回該值的鍵名懂算。否則input數(shù)組中的所有鍵名都會(huì)被返回只冻。array_values????返回?cái)?shù)組中所有的值,并建立數(shù)字索引
array_merge合并一個(gè)或多個(gè)數(shù)組
一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面计技。
如果輸入的數(shù)組中有相同的字符串鍵名喜德,則該鍵名后面的值將覆蓋前一個(gè)值。
如果數(shù)組包含數(shù)字鍵名酸役,后面的值將不會(huì)覆蓋原來的值住诸,而是附加到后面。
如果只給了一個(gè)數(shù)組并且該數(shù)組是數(shù)字索引的涣澡,則鍵名會(huì)以連續(xù)方式重新索引。array_merge_recursive遞歸地合并一個(gè)或多個(gè)數(shù)組
//搜索
in_array檢查數(shù)組中是否存在某個(gè)值
boolin_array(mixed$needle,array$haystack[, bool$strict])array_key_exists檢查給定的鍵名或索引是否存在于數(shù)組中
isset()對(duì)于數(shù)組中為NULL的值不會(huì)返回TRUE丧诺,而array_key_exists()會(huì)array_search在數(shù)組中搜索給定的值入桂,如果成功則返回相應(yīng)的鍵名
array_combine創(chuàng)建一個(gè)數(shù)組,用一個(gè)數(shù)組的值作為其鍵名驳阎,另一個(gè)數(shù)組的值作為其值
如果兩個(gè)數(shù)組的單元數(shù)不同或者數(shù)組為空時(shí)返回FALSE抗愁。array_rand從數(shù)組中隨機(jī)取出一個(gè)或多個(gè)單元,返回鍵名或鍵名組成的數(shù)組呵晚,下標(biāo)是自然排序的
array_fill用給定的值填充數(shù)組
array_fill($start,$num,$value)array_flip交換數(shù)組中的鍵和值array_pad用值將數(shù)組填補(bǔ)到指定長(zhǎng)度array_reverse返回一個(gè)單元順序相反的數(shù)組array_unique移除數(shù)組中重復(fù)的值array_splice把數(shù)組中的一部分去掉并用其它值取代
implode將數(shù)組元素值用某個(gè)字符串連接成字符串explode($delimiter,$str[,$limit])//使用一個(gè)字符串分割另一個(gè)字符串
$delimiter不能為空字符串""
array_map將回調(diào)函數(shù)作用到給定數(shù)組的單元上蜘腌,只能處理元素值,可以處理多個(gè)數(shù)組
如果callback參數(shù)設(shè)為null饵隙,則合并多個(gè)數(shù)組為一個(gè)多維數(shù)組
array_walk對(duì)數(shù)組中的每個(gè)成員應(yīng)用用戶函數(shù)撮珠,只能處理一個(gè)數(shù)組,鍵和值均可處理金矛,與foreach功能相同
boolarray_walk(array&$array,callback$funcname[,mixed$userdata] )
//棧:
后進(jìn)先出入棧和出棧會(huì)重新分配索引下標(biāo)array_push將一個(gè)或多個(gè)單元壓入數(shù)組的末尾(入棧)array_pop將數(shù)組最后一個(gè)單元彈出(出棧)使用此函數(shù)后會(huì)重置(reset())array指針芯急。
//隊(duì)列:
先進(jìn)先出隊(duì)列函數(shù)會(huì)重新分配索引下標(biāo)array_unshift在數(shù)組開頭插入一個(gè)或多個(gè)單元array_shift將數(shù)組開頭的單元移出數(shù)組使用此函數(shù)后會(huì)重置(reset())array指針。
//排序函數(shù)
sort對(duì)數(shù)組排序rsort對(duì)數(shù)組逆向排序asort對(duì)數(shù)組進(jìn)行排序并保持索引關(guān)系arsort對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系ksort對(duì)數(shù)組按照鍵名排序krsort對(duì)數(shù)組按照鍵名逆向排序usort使用用戶自定義的比較函數(shù)對(duì)數(shù)組中的值進(jìn)行排序uksort使用用戶自定義的比較函數(shù)對(duì)數(shù)組中的鍵名進(jìn)行排序uasort使用用戶自定義的比較函數(shù)對(duì)數(shù)組中的值進(jìn)行排序并保持索引關(guān)聯(lián)natsort用用“自然排序”算法對(duì)數(shù)組排序natcasesort用“自然排序”算法對(duì)數(shù)組進(jìn)行不區(qū)分大小寫字母的排序array_multisort對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序shuffle將數(shù)組打亂
引用傳遞參數(shù)驶俊,返回bool值娶耍。
重新賦予索引鍵名,刪除原有鍵名
//差集
array_udiff_assoc帶索引檢查計(jì)算數(shù)組的差集饼酿,用回調(diào)函數(shù)比較數(shù)據(jù)array_udiff_uassoc帶索引檢查計(jì)算數(shù)組的差集榕酒,用回調(diào)函數(shù)比較數(shù)據(jù)和索引array_udiff用回調(diào)函數(shù)比較數(shù)據(jù)來計(jì)算數(shù)組的差集array_diff_assoc帶索引檢查計(jì)算數(shù)組的差集
array_diff_key使用鍵名比較計(jì)算數(shù)組的差集array_diff_uassoc用用戶提供的回調(diào)函數(shù)做索引檢查來計(jì)算數(shù)組的差集
array_diff_ukey用回調(diào)函數(shù)對(duì)鍵名比較計(jì)算數(shù)組的差集array_diff計(jì)算數(shù)組的差集//交集array_intersect_assoc帶索引檢查計(jì)算數(shù)組的交集
array_intersect_key使用鍵名比較計(jì)算數(shù)組的交集array_intersect_uassoc帶索引檢查計(jì)算數(shù)組的交集胚膊,用回調(diào)函數(shù)比較索引
array_intersect_ukey用回調(diào)函數(shù)比較鍵名來計(jì)算數(shù)組的交集array_intersect計(jì)算數(shù)組的交集array_key_exists用回調(diào)函數(shù)比較鍵名來計(jì)算數(shù)組的交集array_uintersect_assoc帶索引檢查計(jì)算數(shù)組的交集,用回調(diào)函數(shù)比較數(shù)據(jù)array_uintersect計(jì)算數(shù)組的交集想鹰,用回調(diào)函數(shù)比較數(shù)據(jù)
extract($arr[,$type[,$prefix]])從數(shù)組中將變量導(dǎo)入到當(dāng)前的符號(hào)表(接受結(jié)合數(shù)組$arr作為參數(shù)并將鍵名當(dāng)作變量名澜掩,值作為變量的值)compact($var[,...])建立一個(gè)數(shù)組,包括變量名和它們的值(變量名成為鍵名而變量的內(nèi)容成為該鍵的值)
/*【偽類型】*/
mixed說明一個(gè)參數(shù)可以接受多種不同的(但并不必須是所有的)類型杖挣。number說明一個(gè)參數(shù)可以是integer或者float肩榕。callback回調(diào)函數(shù)
void ???????void作為返回類型意味著函數(shù)的返回值是無用的。
void作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)惩妇。
/*【數(shù)據(jù)庫(kù)操作】*/
#連接認(rèn)證mysql_connect連接并認(rèn)證數(shù)據(jù)庫(kù)#發(fā)送SQL語句株汉,接收?qǐng)?zhí)行結(jié)果mysql_query發(fā)送SQL語句
僅對(duì)select, show, explain, describe語句執(zhí)行成功返回一個(gè)資源標(biāo)識(shí)符,其他語句成功返回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)閉連接
/*【類和對(duì)象】*/
#成員:類成員:類常量波材、靜態(tài)屬性股淡、靜態(tài)方法
對(duì)象成員:非靜態(tài)屬性、非靜態(tài)方法
#除此外廷区,類不能包含任何其他東西N椤!隙轻!
#類名埠帕、方法名、屬性名均不區(qū)分大小寫
# $this代表本對(duì)象玖绿,self代表本類敛瓷,parent代表父類
#類和函數(shù)均可被事先編譯(僅作為最外層時(shí))
#類的定義必須在單一的PHP區(qū)塊內(nèi),不能被多個(gè)PHP標(biāo)簽分割
//構(gòu)造方法
-具有構(gòu)造函數(shù)的類會(huì)在每次創(chuàng)建新對(duì)象時(shí)先調(diào)用此方法
void __construct([mixed$args[, $... ]] )-構(gòu)造方法所需參數(shù)由new實(shí)例化對(duì)象時(shí)斑匪,給類增加參數(shù)值呐籽。-構(gòu)造方法也可以被手動(dòng)調(diào)用。- 5.3.3版本以前秤标,支持于類名同名的方法作為構(gòu)造方法绝淡。-兩種沖突時(shí),__construct優(yōu)先
//析構(gòu)方法
-析構(gòu)函數(shù)會(huì)在到某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷毀時(shí)執(zhí)行苍姜。
void __destruct( void )#作用:釋放對(duì)象所占用的資源
#調(diào)用的時(shí)機(jī)
-腳本結(jié)束時(shí)所有資源均被釋放牢酵,包括對(duì)象
-手動(dòng)刪除對(duì)象時(shí)
-保存對(duì)象的變量被賦予新值時(shí)(任何值,包括null)
-在使用exit()終止腳本運(yùn)行時(shí)也會(huì)被調(diào)用
//靜態(tài)成員(static關(guān)鍵字)
-聲明類成員或方法為static衙猪,就可以不實(shí)例化類而直接訪問馍乙。
-靜態(tài)成員(屬性或方法)均屬于類布近,故不能通過$this或->訪問。
-靜態(tài)成員是所有對(duì)象共享丝格,屬于類撑瞧。
-靜態(tài)成員用類調(diào)用,非靜態(tài)成員用對(duì)象調(diào)用显蝌。#靜態(tài)屬性
-靜態(tài)屬性不可以由對(duì)象通過->操作符來訪問预伺。
-靜態(tài)屬性只能被初始化為一個(gè)字符值或一個(gè)常量,不能使用表達(dá)式曼尊。 所以你可以把靜態(tài)屬性初始化為整型或數(shù)組酬诀,但不能指向另一個(gè)變量或函數(shù)返回值,也不能指向一個(gè)對(duì)象骆撇。#靜態(tài)方法
-由于靜態(tài)方法不需要通過對(duì)象即可調(diào)用瞒御,所以偽變量$this在靜態(tài)方法中不可用。
-用::方式調(diào)用一個(gè)非靜態(tài)方法會(huì)導(dǎo)致一個(gè)E_STRICT級(jí)別的錯(cuò)誤神郊。
//訪問解析操作符(::)
-可以用于訪問靜態(tài)成員肴裙、方法和常量,還可以用于覆蓋類中的成員和方法涌乳。
-當(dāng)在類的外部訪問這些靜態(tài)成員蜻懦、方法和常量時(shí),必須使用類的名字爷怀。
- self和parent這兩個(gè)特殊的關(guān)鍵字是用于在類的內(nèi)部對(duì)成員或方法進(jìn)行訪問的阻肩。
//訪問辨析
-對(duì)象成員,內(nèi)部通過$this指定运授,外部通過對(duì)象名指定,均用->訪問乔煞,訪問屬性時(shí)不需加$吁朦。
對(duì)象名->屬性名 ???對(duì)象名->方法名()$this->屬性名$this->方法名()-類成員,內(nèi)部通過self或parent指定渡贾,外部通過類名指定逗宜,均用::訪問,訪問屬性時(shí)需加$空骚。
類名::$屬性名類名::方法名() ???????self::$屬性名self::方法名()-特殊:也可以通過對(duì)象訪問類成員纺讲。(不建議)
對(duì)象名::$類屬性名$this::$類屬性名對(duì)象名::$類方法名()$this::類方法名()#對(duì)象成員訪問用->,類成員訪問用::
-無論是靜態(tài)方法還是非靜態(tài)方法囤屹,均可通過類或?qū)ο筮M(jìn)行訪問熬甚。-靜態(tài)屬性通過類訪問,靜態(tài)方法通過對(duì)象訪問肋坚。-只有使用對(duì)象調(diào)用非靜態(tài)方法時(shí)乡括,$this才可以使用肃廓!-靜態(tài)方法不可使用$this。-類可以調(diào)用對(duì)象方法诲泌,但注意方法內(nèi)不能有$this盲赊。-非靜態(tài)方法可以調(diào)用靜態(tài)屬性或靜態(tài)方法,反之不可以敷扫。
//類常量
-常量的值將始終保持不變哀蘑。-在定義和使用常量的時(shí)候不需要使用$符號(hào)。-常量的值必須是一個(gè)定值葵第,不能是變量绘迁,類屬性或其它操作(如函數(shù)調(diào)用)的結(jié)果。#定義:const常量名=常量值;
-不需要加public等訪問修飾限定符-類常量屬于類羹幸,使用類訪問脊髓,類名::類常量 或self::類常量
//自動(dòng)加載對(duì)象
-在試圖使用尚未被定義的類時(shí)自動(dòng)調(diào)用__autoload函數(shù)-自動(dòng)加載使用到的類名文件(根據(jù)類名找相應(yīng)名稱的文件,故需類名與類文件名一致)-每個(gè)需要加載類的文件都需要存在__autoload函數(shù)-將__autoload函數(shù)寫入單獨(dú)的文件栅受,每個(gè)需要用到類的文件再require該函數(shù)文件- __autoload參數(shù)是類名function__autoload($class_name) {
require_once$_SERVER["DOCUMENT_ROOT"] . "/class/$class_name.php";
}
// $_SERVER["DOCUMENT_ROOT"]當(dāng)前運(yùn)行腳本所在的文檔根目錄
-可以通過類名将硝,來推導(dǎo)出類所在的文件名!-如果一個(gè)項(xiàng)目存在多個(gè)自動(dòng)加載函數(shù)時(shí)屏镊,定義一個(gè)可以完成加載的普通函數(shù)依疼,并在函數(shù)之前使用spl_autoload_register注冊(cè)該函數(shù)。# spl_autoload_register
-注冊(cè)__autoload()函數(shù)
bool spl_autoload_register ([callback$autoload_function] )-可以注冊(cè)多個(gè)自動(dòng)加載函數(shù)而芥,先注冊(cè)的先執(zhí)行-一旦注冊(cè)自動(dòng)加載函數(shù)律罢,__autoload就失效。-注冊(cè)函數(shù)時(shí)棍丐,參數(shù)為函數(shù)名(注意加引號(hào))误辑;注冊(cè)方法時(shí),參數(shù)為數(shù)組#注冊(cè)類或?qū)ο蟮姆椒樽詣?dòng)加載方法時(shí)歌逢,參數(shù)需為數(shù)組:
spl_autoload_register(array(__CLASS__, '__autoload'));
__CLASS__表示當(dāng)前類名巾钉,若是對(duì)象可用$this,詳細(xì)見手冊(cè)