1

我想将 pathinfo 函数的值分配给如下变量:

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

但是没有输出。

但如果我只运行:

print_r(pathinfo($path_image));

我得到这样的输出:

Array ( [dirname] => http://blah.com/images [basename] => image123.jpg [extension] => jpg [filename] => image123) 
4

3 回答 3

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

来自php.net

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


list() 仅适用于数字数组,并假定数字索引从 0 开始。


要解决这个问题,您可以尝试通过 省略结果数组键,正如@anupamarray_values()的回答中提到的那样:

<?php
$values = array_values(pathinfo($path_image));
list($dirname, $basename, $extension, $filename) = $values;
?>
于 2013-09-21T04:12:21.263 回答
1

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

list($dirname, $basename, $extension, $filename) = array_values(pathinfo($path_image));
于 2013-09-21T04:14:40.077 回答
1

工作:

list($dirname, $basename, $extension, $filename) = array_values(pathinfo($wallpaper_image));
echo $dirname.$basename.$extension.$filename;
于 2013-09-21T04:14:48.513 回答