Flyer.cz
Znalostní báze chyb, problémů a návodů pro WordPress
Dnes už se s touto chybou na webech moc nesetkáte. Pokud však vaši zákazníci mají weby na webhostingu se starší verzí PHP 5.4 a nižší tak je to možné.
Parse error: syntax error, unexpected ‚[‚ in /www/domena.tld/wordpress/wp-content/themes/sablona/functions/funkce.php on line 1234
Tato chyba nám oznamuje, že došlo k syntaktické chybě při parsování. Konkrétně parser narazil na znak [ v místě, kde by jej nečekal.
Tuto chybu způsobuje použití funkce pro práci s polem (array). Konkrétně array().
Do verze PHP 5.3 byl pouze možný zápis:
$pole = array(1, 2, 3);
Od verze PHP 5.4 se však hojně začal používat i zápis:
$pole = [1, 2, 3];
Vzhledem k tomu, že PHP 5.3 tento zápis nezná, tak vyhodí chybu.
Obdobně jakákoliv funkce, která bude využívat [ ] pro volání klíče vyhodí chybu. Například:
$pole = funkce()["klíč"];
Řešení v tomto případě je tedy přejít na novou verzi PHP.
Pokud se nepotvrdí problém s verzí PHP, je klidně možné že se skriptu opravdu nachází chybně použité [ ].
Například není možné jen tak definovat pole při zadávání proměnné v třídě.
<?php class Trida{ public $promena["klic"] = 1; } ?>
Tohle způsobí chybu. Od verze PHP 5.6.3 však jde použít zápis:
class Trida{ public $promena = [ 'klic' => 1 ]; }
Jinak se chyba nejčastěji vyskytuje, když omylem programátor použije běžné závorky ( ) místo [ ].
Zdroje: