2014-09-09 7 views
11

Quando provo ad accedere a un array per chiave che non esiste in questo array, php genererà un errore di avviso "indice indefinito". Quando provo a fare lo stesso con le stringhe, viene generato un avviso di "offset stringa non valido". Questo è un comportamento atteso e so come gestirlo.Perché l'accesso all'indice array sul valore booleano non genera alcun tipo di errore?

Ma quando ho provato questo su valori booleani o interi nulla accade:

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

$var = false; 
var_dump($var['test']); 

mi aspetto di vedere alcuni messaggi di errore, ma $var['test'] imposta solo in silenzio a NULL.

Quindi perché php consente di accedere al valore booleano tramite una chiave di array senza alcuna indicazione che si sta facendo qualcosa di sbagliato? La frase "accesso valore booleano attraverso una chiave di array" mi sembra terribilmente strana, ma puoi farlo in php.

+1

quale messaggio di errore desideri? –

+0

@Dagon Mi aspettavo un "indice indefinito". Non importa quale errore vorrei. Mi sto solo chiedendo il motivo per cui non vi è alcun messaggio di errore. –

+0

effettivamente ho provato questo, '$ var = 123;' questo si verifica anche sugli interi – Ghost

risposta