2013-09-21 45 views
1

我想PATHINFO函數的值賦給變量,像這樣:PHP - 爲什麼這個列表功能不工作

list($dirname, $basename, $extension, $filename) = pathinfo($path_image); 
echo $dirname.$basename.$extension.$filename; 

但是沒有輸出。

但是,如果我只運行:

print_r(pathinfo($path_image)); 

我得到輸出,像這樣:

Array ([dirname] => http://domain.com/images [basename] => image123.jpg [extension] => jpg [filename] => image123) 
+2

在這裏評論數2:http://php.net/manual/en/function.pathinfo.php – elclanrs

+0

認沽使用error_reporting(E_ALL); ini_set('display_errors',1);在腳本的頂部,讓我們知道你現在看到了什麼錯誤。 – anupam

回答

1

工作:

list($dirname, $basename, $extension, $filename) = array_values(pathinfo($wallpaper_image)); 
echo $dirname.$basename.$extension.$filename; 
2
  1. list()不是一個功能,它是一種語言結構。
  2. 它不適用於關聯數組。它適用於索引的。

php.net

這是不是一個真正的函數,而是語言構造


列表()只適用於數字陣列和假設數字爲 指數從0開始。


爲了解決這個問題,您可以嘗試ommit結果數組的鍵由array_values(),如mentiononed在回答@anupam的:

<?php 
$values = array_values(pathinfo($path_image)); 
list($dirname, $basename, $extension, $filename) = $values; 
?> 
+0

非常感謝! – RhymeGuy

1

PATHINFO()返回關聯數組。所以,你的代碼應工作如下:

list($dirname, $basename, $extension, $filename) = array_values(pathinfo($path_image));