Tato chyba se zobrazí při pokusu o použití syntaxe krátkého pole push na řetězec.
Například toto
$foo = 'foo';
$foo[] = 'bar'; // ERROR!
Hádám, že jeden nebo více vašich $name
, $date
, $text
nebo $date2
proměnné byly inicializovány jako řetězec.
Upravit: Když se znovu podíváte na vaši otázku, vypadá to, že je ve skutečnosti nechcete používat jako pole, protože je níže považujete za řetězce.
Pokud ano, změňte své úkoly na
$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];
Zdá se, že existují nějaké problémy s PHP 7 a kódem používajícím empty-index syntaxe push pole.
Aby bylo jasno, tyto fungují dobře v PHP 7+
$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry
$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry
Co nefunguje se pokouší použít empty-index push na jakoukoli proměnnou deklarovanou jako řetězec, číslo, objekt atd., tj.
$declaredAsString = '';
$declaredAsString[] = 'value';
$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';
$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';
Všechny mají za následek fatální chybu.