Problema errore: Strict standards

  • Creatore Discussione Creatore Discussione Hackx
  • Data di inizio Data di inizio

Hackx

Utente Attivo
20 Ago 2013
108
0
16
Ciao :),

Ho riscontrato un errore (Strict standards: Only variables should be passed by reference) durante la progettazione di un modulo upload php.

Ecco la riga di codice:
PHP:
else if(!in_array(strtolower(end(explode('.', $_FILES["upload"]["name"]))),$tipi_consentiti))  
      {  
      echo 'Commento';  
      }

Ho letto diversi articoli, però ancora non ho ben capito come risolverlo.
Spero in un vostro aiuto :)

Vi ringrazio moltissimo in anticipo,
Andrea
 
L'errore ti dice che è più opportuno passare ad end() una variabile che non il risultato di una funzione, di conseguenza l'unico modo è di isolare l'explode in una variabile prima del tuo controllo e poi usare quella.
 
In realtà potresti anche nascondere gli errori di tipo E_STRICT tramite l'uso di error_reporting ad inizio script:
PHP:
error_reporting(E_ALL & ~E_STRICT);

Personalmente però la reputo una non-soluzione.
Se PHP mi dice che le cose si dovrebbero fare un modo differente conviene prestargli ascolto.
 
In realtà potresti anche nascondere gli errori di tipo E_STRICT tramite l'uso di error_reporting ad inizio script:
PHP:
error_reporting(E_ALL & ~E_STRICT);

Personalmente però la reputo una non-soluzione.
Se PHP mi dice che le cose si dovrebbero fare un modo differente conviene prestargli ascolto.

Ciao flameseeker,

Innanzitutto davvero molto rapido e preciso :)
Si concordo .. se per il php è un errore significa che va corretto!

Comunque tutto risolto, ho creato una variabile con all'interno l'explode e poi l'ho passata ad end!.

Ancora grazie!!
Andrea
 

Discussioni simili