2010-01-04 13 views

risposta

17

Questa è una cattiva pratica, ma non a causa dello spazio.

// file foo.php 
$_SESSION['stuff to keep'] = 42; 

// file bar.php 
if ($_SESSION['stufft o keep'] == 42) frobnicate(); 

Qui, il codice è silenzioso e il bug può richiedere un po 'di tempo per essere trovato. La buona pratica è quella di utilizzare un nome di PHP-imposto, come ad esempio un costante classe:

$_SESSION[Stuff::TO_KEEP] = 42; 

if($_SESSION[Stuff::TOO_KEEP] == 42) 
// error: no constant TOO_KEEP in class Stuff 

Si può quindi definire che costante per qualsiasi costante a trovare interessante o leggibile, come ad esempio "stuff to keep" (con gli spazi). Ovviamente, extract() e il casting a object non funzioneranno più, ma non dovresti farlo comunque con la tua sessione.

Se il testo inserito dall'utente nelle chiavi di sessione è, ovviamente, un errore di sicurezza evidente.

+0

Works: http://ideone.com/4OYl1B Do not: http: // ideone.com/51uC5D – Prasanth

3

Non causerà un problema, ma le chiavi degli array di solito sono considerati come i nomi delle variabili così dovrebbe essere scelti con le stesse considerazioni

0

sembra come l'aggiunta di spazi inutili a mio parere ... Di solito non uso spazi. Se lo fai, assicurati di citare le chiavi dell'array.

8

Puoi farlo, funzionerà - e anche se generalmente non lo faccio quando imposto le chiavi dei miei array "a mano", a volte capita quando ottengo le chiavi da un file (per esempio), e non ho mai avuto alcun problema con questo.

Forse ciò potrebbe causare qualche tipo di problema se si stanno utilizzando le funzioni extract. Se crea variabili con spazi nei loro nomi (non so se lo sarà) sarà difficile (ma non impossibile) accedere alle tue variabili.

+0

+1 Punto positivo: l'estrazione genera un errore (avviso?) Se viene richiesto di estrarre un array con chiavi con nome non valido –

Problemi correlati