1

以下代码在使用 php 版本 5.3.5 的 Windows 上运行时出现错误:

$dir_widgets = '/var/www/site-sp/dir1/filename.json';

这里的错误:

$folder_name = array_reverse( explode( '/' , $dir_widgets ) )[ 1 ];

这是报告的错误:

*Parse error*: syntax error, unexpected '[' in 

在带有 PHP 版本 5.4.9 的 GNU/Ubuntu 13.04 上,它运行良好。

可以是PHP版本吗?执行以下操作是不好的做法吗?

array_reverse( explode( '/' , $dir_widgets ) )[ 1 ]

谢谢。

4

2 回答 2

7

PHP 5.4 中添加了直接从返回值访问数组索引,因此在 5.3 版本中会出现语法错误。您需要将函数的返回值保存到临时变量中,然后访问所需的索引。

就像是:

$tmp_array = array_reverse( explode( '/' , $dir_widgets ) );
$tmp_array[1] ...
于 2013-08-16T03:02:24.347 回答
1

PHP 5.3 不允许您在尝试时引用数组中的值。

您需要将 return from 设置array_reverse()为一个变量,并从该变量中引用元素 a la$var = array_reverse(); $var[1];

于 2013-08-16T03:03:23.357 回答