PHP解析错误:使用explode函数

6

我正在优化我的网站。在本地测试页面,一切正常。当我上传并访问它时,在线上突然出现了一个解析错误...但是在本地它完美运行,就像我之前说的那样。

 Parse error: syntax error, unexpected '[', expecting ',' or ';' in /home/theriff/www/frvideos.php on line 25

代码如下:
echo explode('|',$youtube[$i])[2].'<br />'."\r\n";

$youtube[$i]是一个像这样格式化的行:

DFHG-LINKYOUTUBE-HJGHJ|french Description|English Description

Youtube链接只包含ID,所以肯定没有'|'符号,它是从我手动编写的文本文件中读取的,所以我确定该条目是正确的。

有人知道为什么在本地(EasyPhp开发人员)正常工作但在远程服务器上不行吗?

2个回答

4
$results =  explode('|',$youtube[$i]);
echo $results[2].'<br />'."\r\n";

PHP版本不同,因此在“远程服务器”上无法使用数组链接。


是的,是的...现在它可以工作了...谢谢你,我会在能够的时候给你点赞。你有任何想法为什么它在本地运行时很好,但在远程服务器上却不行吗? - user3916429
1
由于 PHP 版本不同。@knittl 链接到了关于 Array dereferencing 的文档,这个功能只在 php 5.4 及以上版本中可用。您的生产 [即:远程] 服务器正在运行 php 5.3 或更早版本。 - Ohgodwhy

3

PHP版本旧 (< 5.4) 不能直接引用函数返回值的数组,你需要先将结果存储在一个临时变量中:

$exploded = explode('|',$youtube[$i]);
echo $exploded[2].'<br />'."\r\n";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接