2013-05-11 97 views
7

我有一個字符串,它將包含文件上傳名稱,例如「image.jpg」。 我試圖使用爆炸功能,但它返回一個錯誤「爆炸()期望參數2是字符串,數組給予...」使用end()和explode()不起作用

我試着尋找原因,並將其與如何比較使用PHP.Net的指示,但無濟於事。

$upload_extension = end(explode(".", $feature_icon)); 
+1

向我們展示你如何定義'$ feature_icon' – 2013-05-11 14:34:21

+1

'$ feature_icon'應該是一個字符串,而不是一個數組。 – Vulcan 2013-05-11 14:34:40

+6

無論如何,您可能需要考慮pathinfo()... – SEngstrom 2013-05-11 14:35:08

回答

12

你不能使用end()像你,因爲

end() -> Parameters ¶數組做。該數組通過引用傳遞,因爲它由函數修改。這意味着您必須將它傳遞給一個實變量,而不是返回數組的函數,因爲只有實際變量可以通過引用傳遞。

所以不喜歡

$feature_icon ="image.jpg"; 
$upload_extension = explode(".", $feature_icon); 
$upload_extension = end($upload_extension); 
var_dump($upload_extension); 

Live result

4

嘗試做這樣的分別:

$upload_extension = explode(".", $feature_icon); 
$upload_extension = end($upload_extension); 
+0

實際上,+1作爲'end()'需要引用參數;呃去,不是函數調用或文字值的結果(*爲pedantry,非參考返回函數調用*) – Dan 2013-05-11 14:43:51

+1

我討厭這個嚴格:( – 2013-11-03 17:32:13