back to top

PHP Warning: Illegal string offset – Cos’è e come risolvere

Questo è uno degli errori più comuni quando si lavora con PHP. L’errore Illegal string offset… si verifica quando si prova ad accedere ad una stringa come se fosse un array.

In realtà, con PHP è possibile trattare una stringa come fosse un array per accedere alle singole lettere, in questo modo:

$var = 'Mr. Webmaster';
echo $var[0]; // M
echo $var[1]; // r
echo $var[2]; // .

Fin qui nessun errore. E’ tutto corretto.

Il problema si verifica se proviamo ad accedere ad un indice inesistente, ad esempio:

echo $var['url'];

In questo caso otterremo l’errore:

PHP Warning: Illegal string offset 'url' in ...

Questo perchè abbiamo trattato la string $var come un array, ma non lo è!

Onde evitare di incorrere in questo errore è opportuno, nello scrivere codice PHP, utilizzare sempre gli opportuni controlli preliminari, sfruttando le funzioni is_array(), array_key_exists() e isset().

Ad esempio:

$var = 'Mr. Webmaster';

if (is_array($var) && isset($var['url'])) {
  echo $var['url'];
}

/*
oppure
*/

if (is_array($var) && array_key_exists('url',$var)) {
  echo $var['url'];
}

E’ importante sottolineare, in merito a questo ultimo esempio, che c’è una certa differenza tra l’utilizzare isset() e array_key_exists(): la prima funzione, infatti, restituirà false se il valore di $var[‘url’] è null, viceversa la seconda restituirà true o false semplicemente a seconda che la chiave esista oppure no (a prescindere, cioè, dal suo valore).

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Correggere l’errore the uploaded file exceeds the upload_max_filesize directive in php.ini

L'errore the uploaded file exceeds the upload_max_filesize directive in...

Cannot modify header information – headers already sent: come risolvere l’errore PHP

L'errore di PHP cannot modify header information - headers...

Ricavare l’estensione di un file con PHP

Quando si lavora con i file in un'applicazione web,...

GD Library: creazione, manipolazione e ridimensionamento immagini con PHP

Le librerie GD (o GD Library), sono componenti fondamentali...

PHP: impostare il fuso orario italiano

Le tue pagine PHP non mostrano l’orario corretto? Probabilmente...
Pubblicitร