以下代码在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)
谢谢.
在PHP 5.4中添加了直接从返回值访问数组索引,因此在5.3版本中出现语法错误的原因.您需要将函数的返回值保存到临时变量,然后访问所需的索引.
就像是:
$tmp_array = array_reverse( explode( '/' , $dir_widgets ) );
$tmp_array[1] ...
Run Code Online (Sandbox Code Playgroud)