У меня два сервера. Оба они работают под управлением php 5.3.3. Этот код работает на одном сервере и возвращает синтаксическую ошибку на другом. Есть ли параметр php ini, который влияет на это поведение? Я не могу найти ничего связанного с этим в документации PHP, но, возможно, ищу не в том месте.
> php -v
PHP 5.3.3 (cli) (built: Sep 23 2010 14:15:16)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans
php > echo explode(" ", " foo ")[1];
foo
> php -v
PHP 5.3.3 (cli) (built: Jan 31 2011 15:57:29)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
php > echo explode(" ", " foo ")[1];
Parse error: syntax error, unexpected '[', expecting ',' or ';' in php shell code on line 1
Другая идея: PHP на обоих серверах скомпилирован по индивидуальному заказу, поэтому он может также быть другим флагом компиляции.