Windows上的语法错误,而不是Linux上的语法错误

Jos*_*tes 1 php

以下代码在php版本5.3.5的Windows上运行时给出了错误:

$dir_widgets = '/var/www/site-sp/dir1/filename.json';
Run Code Online (Sandbox Code Playgroud)

错误在这里:

$folder_name = array_reverse( explode( '/' , $dir_widgets ) )[ 1 ];
Run Code Online (Sandbox Code Playgroud)

这是报告的错误:

*Parse error*: syntax error, unexpected '[' in 
Run Code Online (Sandbox Code Playgroud)

在GNU/Ubuntu 13.04上,PHP版本为5.4.9,它运行正常.

可以是PHP版本吗?做以下事情是不好的做法吗?

array_reverse( explode( '/' , $dir_widgets ) )[ 1 ]
Run Code Online (Sandbox Code Playgroud)

谢谢.

sha*_*net 7

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

就像是:

$tmp_array = array_reverse( explode( '/' , $dir_widgets ) );
$tmp_array[1] ...
Run Code Online (Sandbox Code Playgroud)