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

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

$ dir_widgets ='/ var / www / site -sp / dir1 / filesname.json';
</ code>
nnn

错误:</ p>

  $ folder_name = array_reverse(explode('/',$ dir_widgets))[1]; 
</ code> </ pre>

这是 报告的错误:</ p>

  解析错误:语法错误,意外'['在
</ code> </ pre>

在GNU上 / Ubuntu 13.04与PHP版本5.4.9它工作正常。</ p>

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

  array_reverse(explode('/',$ dir_widgets))[1] 
</ code> </ pre>

谢谢。</ p>
</ div>

展开原文

原文

The following code is giving me errors when run on windows with php version 5.3.5:

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

error here:

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

This is the error reported:

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

On GNU/Ubuntu 13.04 with PHP version 5.4.9 it works fine.

Can be the PHP version? Is it bad practice to do the following?

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

Thanks.

php
doupingyun73833
doupingyun73833 是的,我忘了在windows上设置目录:就像c:\blah\www\site-sp\dir1\filename.json。谢谢。
大约 7 年之前 回复
douzhulan1815
douzhulan1815 Windows使用完全不同的目录结构,因此/var/www/site-sp/dir1/filename.json在Windows机器上没有意义,它应该像c:\\blah\\www\\site-sp\\DIR1\\filename.json
大约 7 年之前 回复
douzhuangxuan3268
douzhuangxuan3268 目录路径是否完全相同?该目录路径是典型的Linux安装PHP,而不是Windows。
大约 7 年之前 回复
dql123000
dql123000 告诉我们它给你的错误,以及为什么不使用json_decode来读取对象?请记住,在windows/var/www/site-sp/dir1/filename.json上不是有效的目录路径。
大约 7 年之前 回复

2个回答



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

类似于:</ p>

 <  code> $ tmp_array = array_reverse(explode('/',$ dir_widgets)); 
$ tmp_array [1] ...
</ code> </ pre>
</ div>

展开原文

原文

Accessing an array index directly from a return value was added in PHP 5.4 hence why you are getting a syntax error with version 5.3. You'll need to save the return value from the function to a temporary variable and then access the index you want.

Something like:

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



PHP 5.3不允许您像尝试那样引用数组中的值。 </ p>

您需要将 array_reverse()</ code>的返回值设置为变量,并引用该变量中的元素a la $ var = array_reverse() ; $ var [1]; </ code> </ p>
</ div>

展开原文

原文

PHP 5.3 won't let you reference a value in an array as you are trying to do.

You need to set the return from array_reverse() to a variable and the reference the element from that variable a la $var = array_reverse(); $var[1];

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问