php? 使用系統(tǒng)內(nèi)置函數(shù)
PHP中文網(wǎng)的豬哥,總結(jié)了這么兩句話:
1.如果代碼能賺錢,幫你賺錢最多的是基本語法
2.如果你還在當(dāng)程序員,你看手冊的時(shí)候可能比你看老婆的時(shí)間還長
現(xiàn)在我們就來學(xué)習(xí)如何使用系統(tǒng)內(nèi)置函數(shù)。
子曰:送你一條魚,不如教你捕魚的辦法。
下面我們就來學(xué)習(xí)捕魚的辦法,在使用系統(tǒng)內(nèi)置函數(shù)前,你必須學(xué)會以下幾個(gè)東西:
1.下載一個(gè)最新的手冊
2.經(jīng)常更新手冊
3.將PHP手冊放在你最容易找到的地方。需要的時(shí)候隨時(shí)可以查手冊
4.學(xué)會手冊中函數(shù)的用法
你可以訪問,下載后放到桌面上,隨時(shí)需要隨時(shí)打開查即可:
http://miracleart.cn (每周更新一次)
使用函數(shù)的重點(diǎn)是三塊:
1.了解函數(shù)的功能,特別是常用函數(shù)的功能
2.了解函數(shù)的參數(shù)
3.了解函數(shù)的返回值
我們針對上面的三塊,講解6個(gè)函數(shù),這6個(gè)函數(shù),概況了函數(shù)的基本用法的全部注意事項(xiàng):
1.直接返回布爾型,如bool copy ()
2.帶有MIXED參數(shù)的函數(shù)如何調(diào)用。Mixed表示任何類型的數(shù)據(jù)。如Array_unshift()
3.參數(shù)中帶有&符的參數(shù),一定要傳一個(gè)變量做為參數(shù)。函數(shù)里面改變了他的值。
4.帶有[]的參數(shù),表示可選項(xiàng)。
5.帶有…的參數(shù),表示可以傳任意多個(gè)參數(shù)。
6.帶有callback的參數(shù),表示回調(diào)函數(shù)。需要傳一個(gè)函數(shù)進(jìn)來。Array_map()
7.函數(shù)支持的版本你要了解
實(shí)驗(yàn)
1,拿copy()這個(gè)函數(shù)來舉例:返回bool值的,通常為操作是否成功、驗(yàn)證是否通過、檢查是否正確等。
我們拿copy這個(gè)函數(shù)來看:
bool copy ( string $source , string $dest [, resource $context ] )
這個(gè)函數(shù)的功能為: 拷備一個(gè)文件
返回值為為: bool型值,就是成功返回true,失敗返回false
參數(shù)為: 兩個(gè)字符串的值,一個(gè)是copy的源文件,一個(gè)為目標(biāo)文件。第三個(gè)參數(shù)可選的,不常用,我們不管它。
所以,我們就可以推理出下面的實(shí)驗(yàn)了:
<?php if(copy('abc.txt','bcd.txt')){ echo '復(fù)制成功'; }else{ echo '復(fù)制失敗'; } ?>
2,Mixed表示任何類型的數(shù)據(jù)。如Array_unshift()
我們來看這個(gè)函數(shù):
int array_unshift ( array &$array , mixed $value1 [, mixed $... ] )
功能: 操作一個(gè)數(shù)組,向數(shù)組中之前插入其他類型的參數(shù)。
返回值: int 類型,可能就是插入成功最后的個(gè)數(shù)
參數(shù): 第一個(gè)參數(shù)為&符,也就是在操作的過程中,改變了第一個(gè)參數(shù)的值。引用傳參。也就是操作這個(gè)數(shù)組,向這個(gè)數(shù)組中傳入?yún)?shù)。會直接改變這個(gè)數(shù)組的值。
第二個(gè)參數(shù)為mixed,因?yàn)閿?shù)組可以存入多個(gè)不同的類型.mixed是指混合的意思。因此,mixed是指可傳入任意類型
第三個(gè)數(shù)數(shù)加了中括號,我們所有遇到中括號的。都是指后面的參數(shù)可傳,也可以不傳。
第四,最后還看到了三個(gè)...(省略號)。代表可以傳入任意多個(gè)參數(shù)。
示例:
<?php $queue = array("鳳姐", "芙蓉"); array_unshift($queue, "楊冪", "姚晨"); print_r($queue); ?>
你可以自己實(shí)驗(yàn)一下,看看結(jié)果。
3, 遇到callback的傳函數(shù)或者匿名函數(shù)進(jìn)去協(xié)助處理,讓功能更強(qiáng)大。
bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
我們來看看。
功能:
傳入一個(gè)回調(diào)函數(shù),將數(shù)組的原來的組操作,并且發(fā)生變化。
返回值:
bool 值 也就是意味著,提示成功或者失敗
參數(shù):
第一個(gè)參數(shù)是要操作的數(shù)組。
第二個(gè)參數(shù)是callback 代表著可以傳入函數(shù)或者匿名函數(shù)。
我們來寫個(gè)例子,加強(qiáng)理解:
<?php $shuaige = array("a" => "wuyanzhu", "b" => "huangxiaoming", "c" => "ninzetao"); function test_print($item2, $key) { echo $key ." ---". strtoupper($item2) . "<br />\n"; } echo '<pre>'; var_dump($shuaige); echo '</pre>'; array_walk($shuaige, 'test_print'); echo '用自定義函數(shù)test_print執(zhí)行后的效果:'; echo '<pre>'; var_dump($shuaige); echo '</pre>'; ?>
通過上例,我們發(fā)現(xiàn)數(shù)組中的每個(gè)參數(shù)和值都被修改了。上例大家只需要理解看見傳callback的,需要傳入函數(shù)協(xié)助處理就可以。不用理解。我們在下一章的數(shù)組部份,學(xué)習(xí)完數(shù)組,大家可以再看看。
函數(shù)支持的版本號很重要
我們來看手冊中一個(gè)函數(shù)的截圖:
這是一個(gè)系統(tǒng)函數(shù),而不是自定義的函數(shù)。系統(tǒng)函數(shù)手冊中存在這個(gè)函數(shù),可是為什么無法調(diào)用執(zhí)行這個(gè)函數(shù)呢?請注意,(PHP 5 >= 5.5.0),你可以phpinfo()看一下你當(dāng)前的版本。有的時(shí)候可能是因?yàn)槟愕陌姹咎?,或者你所在的版本中沒有這個(gè)函數(shù),會提示函數(shù)不存在。
有事沒事查手冊,手冊比老婆還要親。