Mysql
 sql >> Database >  >> RDS >> Mysql

Errore irreversibile:operatore [] non supportato per le stringhe

Viene visualizzato questo errore quando si tenta di utilizzare la sintassi push dell'array corto su una stringa.

Ad esempio, questo

$foo = 'foo';
$foo[] = 'bar'; // ERROR!

Direi che uno o più dei tuoi $name , $date , $text o $date2 è stata inizializzata come una stringa.

Modifica: Riesaminando la tua domanda, sembra che tu non voglia effettivamente usarli come array poiché li tratti come stringhe più in basso.

In tal caso, modifica i tuoi compiti in

$name = $row['name'];
$date = $row['date'];
$text = $row['text'];
$date2 = $row['date2'];

Sembra che ci siano alcuni problemi con PHP 7 e il codice che usa l'indice vuoto sintassi push dell'array.

Per chiarire, questi funzionano bene in PHP 7+

$previouslyUndeclaredVariableName[] = 'value'; // creates an array and adds one entry

$emptyArray = []; // creates an array
$emptyArray[] = 'value'; // pushes in an entry

Cosa non funziona sta tentando di utilizzare indice vuoto push su qualsiasi variabile dichiarata come stringa, numero, oggetto, ecc, cioè

$declaredAsString = '';
$declaredAsString[] = 'value';

$declaredAsNumber = 1;
$declaredAsNumber[] = 'value';

$declaredAsObject = new stdclass();
$declaredAsObject[] = 'value';

Tutti risultano in un errore irreversibile.