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é.
Jak chyba přesně vypadá
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.
Verze PHP 5.3 a starší
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.
Ostatní běžné chyby zápisu [
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ě.
<strong><?php</strong>
class Trida{
public $promena["klic"] = 1;
}
<strong>?></strong>
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: