Search code examples
phpnginxfastcgi

PHP FastCGI Parse error


I'm getting the following error message in log:

2014/08/05 00:13:18 [error] 816#0: *23 FastCGI sent in stderr: "PHP message: PHP Parse
error: syntax error, unexpected '[' in /var/www/example.php on line 32" while reading
response header from upstream, client: 1.1.1.1, server: example.com, request: "GET
/example.php HTTP/1.1",upstream: "fastcgi://unix:/dev/shm/php-fpm-www.sock:", host:
"example.com"

The example.php line 32 is:

return $fb->api('/me/scores/','GET')['data'][0]['score'];

I've restarted php5-fpm (I'm using PHP 5.3), nginx and the Ubuntu server itself with no luck. Any idea what is going on? Thanks!


Solution

  • I think that the problem is that you can't use function array deferencing, that is the square brackets after a function call. From PHP 5.4 you can. See also this question PHP Array Syntax Parse Error Left Square Bracket "["

    So try to assign the result of the function call to a variable, and the use it. Like this:

    $response = $fb->api('/me/scores/','GET');
    return $response['data'][0]['score'];