为什么这个PHP代码在一台机器上运行而在另一台机器上运行?

时间:2013-11-28 01:10:44

标签: php ubuntu syntax-error

我在.php文件的开头有这段代码:

<?php

$url = 'https://api.stackexchange.com/2.1/info';
$data = array("site" => 'space', "key" => "T1h2I3s4I5s6M7y8A9p0I1k2E3y!");

$response = (new Curl)->exec($url . '?' . http_build_query($data), [CURLOPT_ENCODING => 'gzip']); 
// ^^ Line 6 ^^

$obj = json_decode($response);
$timestamp = date("Y:m:d H:i:s");

$dbhost = "localhost";
$dbname = "statengine";
$dbuser = "statengine";
$dbpass = "#P1aSs3WoR5d!";

mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error());  
mysql_select_db($dbname) or die("MySQL Error: " . mysql_error()); 

当我在远程Ubuntu 12.04服务器上运行它时,运行正常。但是当我在本地服务器(再次使用Ubuntu 12.04)上运行它时,它会因此错误而失败:

$ php getstats.php 
PHP Parse error:  syntax error, unexpected T_OBJECT_OPERATOR in /home/<me!>/Desktop/statengine/getstats.php on line 6

我确保在机器上安装了CURL。我可以提供所需的任何额外信息,只需询问!

如何让它发挥作用?

1 个答案:

答案 0 :(得分:4)

不同版本的PHP是您的问题。它的工作原理是运行PHP 5.4或更高版本。另一个是5.3或更老。实例化((new Object)->method())上的类成员访问在PHP 5.4之前不可用。