今天在使用split時遇到一些問題。還是對函數理解不深刻,特寫出來做記號
首先來看下兩個方法的定義:
函數原型:array split (string $pattern, string $string [, int $limit])
函數原型:array explode ( string $separator, string $string [, int $limit])
初看沒有啥差別,貌似功能都一樣。我就犯了這個錯誤。 請注意兩個函數的第一個參數string $pattern和string separator,一個是$pattern說明是正規字串,一個是$separator是普通字串。
看下面的程式碼:
$test = end(explode('.', 'abc.txt')); echo $test;//output txt
換成:
$test1 = end(split('.','abc.txt')); echo $test1;//no output
用split的正確做法是:加轉義符號
$test1 = end(split('\.','abc.txt')); echo $test1;//output txt
用split的正確做法是:加轉義符號rrreee
分析:”.”無效,而explode有效。