Você recebe este erro ao tentar usar a sintaxe push de matriz curta em uma string.
Por exemplo, este
$foo = 'foo';
$foo[] = 'bar'; // ERROR!
Eu arriscaria um palpite de que um ou mais de seus
$name
, $date
, $text
ou $date2
variáveis foi inicializado como uma string. Editar: Olhando novamente para sua pergunta, parece que você realmente não quer usá-los como arrays, já que os está tratando como strings mais abaixo.
Em caso afirmativo, altere suas atribuições para
$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];
Parece que há alguns problemas com o PHP 7 e o código usando o empty-index sintaxe de push de matriz.
Para deixar claro, estes funcionam bem em PHP 7+
$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry
$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry
O que não funciona está tentando usar empty-index push em qualquer variável declarada como uma string, número, objeto, etc, ou seja
$declaredAsString = '';
$declaredAsString[] = 'value';
$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';
$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';
Todos resultam em um erro fatal.