PHP中explode與split的區別分析

codeceo發表於2015-03-05

今天在使用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無效,而explode有效。

相關文章