sql >> Database >  >> RDS >> Mysql

Fatale fout:[] operator niet ondersteund voor strings

U krijgt deze foutmelding wanneer u probeert de push-syntaxis voor korte arrays op een string te gebruiken.

Bijvoorbeeld deze

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

Ik vermoed dat een of meer van uw $name , $date , $text of $date2 variabelen is geïnitialiseerd als een tekenreeks.

Bewerken: Als we je vraag nog eens bekijken, lijkt het erop dat je ze niet echt als arrays wilt gebruiken, omdat je ze verderop als strings behandelt.

Zo ja, verander je opdrachten in

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

Het lijkt erop dat er wat problemen zijn met PHP 7 en code met behulp van de empty-index array push-syntaxis.

Om het duidelijk te maken:deze werken prima in PHP 7+

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

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

Wat werkt niet probeert empty-index te gebruiken druk op een variabele die is gedeclareerd als een tekenreeks, getal, object, enz., dwz

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

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

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

Alle resulteren in een fatale fout.



  1. lijst Postgres ENUM-type

  2. Virtuele cloudmachines vergelijken met beheerde clouddatabases

  3. Hoe geef je positie nul van de spinner een promptwaarde?

  4. SQL Server:converteer ((int)jaar,(int)maand,(int)dag) naar Datumtijd