Non riesco a capire una cosa, in questo codice:

Codice PHP:
foreach($this->errors as $error) {
    
    switch(
$error['type']) {
        
        case 
E_ERROR:
        case 
E_USER_ERROR:
            
$errors[] = $error['text'];
            break;
        case 
E_WARNING:
        case 
E_USER_WARNING:
            
$warnings[] = $error['text'];
            break;
        case 
E_NOTICE:
        case 
E_USER_NOTICE:
            
$notices[] = $error['text'];
            break;
        
    }
    

$this->errors è una variabile di classe, un array multimensionale. Ogni elemento ha 2 indici, "type" e "text".
L'istruzione che dà problema è questa:
$warnings[] = $error['text'];
in pratica $error['text'] non viene letta (ho verificato anche con echo), mentre se la metto fuori dallo switch funziona. In pratica è come se $error fosse vista come una variabile esterna allo switch... qualcuno sa dirmi il motivo?