php 使用系統內建函數

PHP中文網的豬哥,總結了這麼兩句話:

    1.如果程式碼能賺錢,幫你賺錢最多的是基本文法

#    2.如果你還在當程式設計師,你看手冊的時候可能比你看老婆的時間還長

現在我們就來學習如何使用系統內建函數。

子曰:送你一條魚,不如教你捕魚的方法。

下面我們就來學習捕魚的辦法,在使用系統內建函數前,你必須學會以下幾個東西:

    1.下載一個最新的手冊

    2.經常更新手冊

    3.將PHP手冊放在最容易找到的地方。需要的時候隨時可以查手冊

    4.學會手冊中函數的用法

你可以訪問,下載後放到桌面上,隨時需要隨時打開查即可:

http://www.php.cn (每週更新一次)

使用函數的重點是三塊:

    1.了解函數的功能,特別是常用函數的功能

    2.了解函數的參數

    3.了解函數的回傳值

我們針對上面的三塊,講解6個函數,這6個函數,概況了函數的基本用法的全部注意事項:

    1.直接傳回布林型,如bool copy ()

    2.以MIXED參數的函數如何呼叫。 Mixed表示任何類型的資料。如Array_unshift()

    3.參數中帶有&符的參數,一定要傳一個變數作為參數。函數裡面改變了他的值。

    4.有[]的參數,表示可選項。

    5.有…的參數,表示可以傳遞任多個參數。

    6.有callback的參數,表示回呼函數。需要傳一個函數進來。 Array_map()

    7.函數支援的版本你要了解

實驗
1,拿copy()這個函數來舉例:傳回bool值的,通常為操作是否成功、驗證是否通過、檢查是否正確等。

我們拿copy這個函數來看:

bool copy ( string $source , string $dest [, resource $context ] )

#這個函數的功能為: 拷備一個檔案
傳回值為為: bool型值,就是成功回傳true,失敗回傳false
參數為: 兩個字串的值,一個是copy的來源文件,一個為目標文件。第三個參數可選的,不常用,我們不管它。

所以,我們就可以推理出下面的實驗了:

<?php

if(copy('abc.txt','bcd.txt')){
   echo '复制成功';
}else{
   echo '复制失败';
}
?>

2,Mixed表示任何類型的資料。如Array_unshift()

我們來看這個函數:

int array_unshift ( array &$array , mixed $value1 [, mixed $... ] )

功能: 操作一個數組,然後在數組中插入其他類型的參數。

回傳值: int 類型,或許就是插入成功最後的個數

參數: 第一個參數為&符,也就是在操作的過程中,改變了第一個參數的值。引用傳參。也就是操作這個數組,向這個數組傳入參數。會直接改變這個陣列的值。

第二個參數為mixed,因為陣列可以存入多個不同的型別.mixed是指混合的意思。因此,mixed是指可傳入任意型別

第三個數數加了中括號,我們所有遇到中括號的。都是指後面的參數可傳,也可以不傳。

第四,最後還看到了三個...(省略號)。代表可以傳入任意多個參數。

範例:

<?php
$queue = array("凤姐", "芙蓉");
array_unshift($queue, "杨幂", "姚晨");
print_r($queue);
?>

你可以自己實驗一下,看看結果。

3, 遇到callback的傳函數或匿名函數進去協助處理,讓功能更強大。

bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )

##我們來看看。

功能:

傳入一個回呼函數,將陣列的原來的群組操作,並且發生變化。

傳回值:

bool 值 也就是意味著,提示成功或失敗

參數:

第一個參數是要操作的陣列。

第二個參數是callback 代表著可以傳入函數或匿名函數。

我們來寫個例子,加強理解:

<?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 '用自定义函数test_print执行后的效果:';

echo '<pre>';
var_dump($shuaige);
echo '</pre>';

?>

透過上例,我們發現陣列中的每個參數和值都被修改了。上例大家只需要理解看見傳callback的,需要傳入函數協助處理就可以。不用理解。我們在下一章的陣列部份,學習完數組,大家可以再看看。

函數支援的版本號碼很重要

我們來看手冊中一個函數的截圖:

document_2015-08-25_55dbdb30ae6ae.png

這是一個系統函數,而不是自訂的函數。系統函數手冊中存在這個函數,可是為什麼無法呼叫執行這個函數呢?請注意,(PHP 5 >= 5.5.0),你可以phpinfo()看一下你目前的版本。有的時候可能是因為你的版本太低,或是你所在的版本沒有這個函數,會提示函數不存在。

有事沒事查手冊,手冊比老婆還要親。


QQ图片20161114111742.jpg#

繼續學習
||
<?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 '用自定义函数test_print执行后的效果:'; echo '<pre>'; var_dump($shuaige); echo '</pre>'; ?>