2

我需要在一行中进行以下操作,我正在寻找在一行中制作类似代码的方法,而不是解决这个特定的示例。

$file_path = pathinfo($_SERVER["SCRIPT_NAME"]);
$file_name = $file_path["filename"];

例如

$file_name = pathinfo($_SERVER["SCRIPT_NAME"])["filename"];
4

2 回答 2

2

数组取消引用只能从 php 5.5 开始。如果您有较早的版本,遗憾的是,这是不可能的。

但是,您可以尝试使用list,它将所有数组元素分配pathinfo给各个变量。如果您正确订购变量,$file_name将拥有您需要的东西。

于 2013-04-25T22:14:10.070 回答
0

不幸的是,PHP 的语法不支持低于 PHP5.5 的版本。从 PHP5.5 开始,您可以编写:

echo pathinfo($path)['filename'];

如果您使用的是 < 5.5 的版本,我建议您编写一个自定义函数:

function array_get($key, $array) {
    if(!array_kex_exists($key, $array)) {
        throw new Exception('$array has no index: ' . $key);
    }
    return $array[$key];
}

然后使用它:

$filename = array_get('filename', pathinfo($path));
于 2013-04-25T22:14:36.797 回答