Obtiene este error cuando intenta usar la sintaxis de inserción de matriz corta en una cadena.
Por ejemplo, este
$foo = 'foo';
$foo[] = 'bar'; // ERROR!
Me arriesgaría a adivinar que uno o más de sus $name
, $date
, $text
o $date2
variables se ha inicializado como una cadena.
Editar: Mirando nuevamente su pregunta, parece que en realidad no quiere usarlos como matrices, ya que los está tratando como cadenas más abajo.
Si es así, cambie sus asignaciones a
$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];
Parece que hay algunos problemas con PHP 7 y el código que usa el empty-index sintaxis de inserción de matriz.
Para que quede claro, estos funcionan bien en PHP 7+
$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry
$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry
Qué no funciona está intentando usar empty-index presione cualquier variable declarada como una cadena, número, objeto, etc., es decir,
$declaredAsString = '';
$declaredAsString[] = 'value';
$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';
$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';
Todo resulta en un error fatal.