Вы получаете эту ошибку при попытке использовать синтаксис push короткого массива для строки.
Например, это
$foo = 'foo';
$foo[] = 'bar'; // ERROR!
Я бы рискнул предположить, что один или несколько изВаши $name
, $date
, $text
или $date2
переменные были инициализированы в виде строки.
Редактировать: Снова глядя на ваш вопрос, похоже, вы нена самом деле вы не хотите использовать их как массивы, поскольку вы рассматриваете их как строки ниже.
Если это так, измените свои назначения на
$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];
Кажется, есть некоторые проблемыс PHP 7 и кодом с использованием синтаксиса push массива empty-index .
Чтобы было понятно, эти отлично работают в PHP 7 +
$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry
$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry
Что не работает пытается использовать empty-index push для любой переменной, объявленной как строка, число, объект и т. Д., Т. Е.
$declaredAsString = '';
$declaredAsString[] = 'value';
$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';
$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';
Все приводит к фатальной ошибке.