PHP - 为什么这个LIST功能不起作用

时间:2013-09-21 04:05:44

标签: php arrays

我想将pathinfo函数的值赋给变量,如:

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) 

3 个答案:

答案 0 :(得分:2)

  1. list()不是一个函数,它是一种语言结构。
  2. 它不适用于关联数组。它适用于索引的。
  3. 来自php.net

      

    这不是一个真正的函数,而是一个语言构造


      

    list()仅适用于数值数组并假设数字   指数从0开始。


    要解决此问题,您可以尝试按array_values()省略结果数组键,如 @anupam

    中提到的那样。
    <?php
    $values = array_values(pathinfo($path_image));
    list($dirname, $basename, $extension, $filename) = $values;
    ?>
    

答案 1 :(得分:1)

pathinfo()返回一个关联数组。因此,您的代码应该如下工作:

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

答案 2 :(得分:1)

<强>工作:

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