2015-05-13 8 views
5

mi chiedevo se questo if:PHP :: Il modo migliore per rilevare se la sessione di avvio

if(session_id()===""){} 

è equivalente a questo if:

if(!session_id()){} 

Entrambi i lavori per me!

ma mi piace la linea di sorter, quindi mi chiedevo solo se è equivalente al 100% e posso contare su questo per rilevare se la sessione è stata avviata.

+0

Il secondo non funzionerà, se l'ID di sessione * sarebbe * uguale a 0. Attaccherei con il primo – Rizier123

+0

Grazie! Vorrei attenermi al primo :-) –

risposta

7

Queste dichiarazioni non sono completamente equivalenti.

if(!session_id()){} significa if(session_id() != TRUE){} così la funzione session_id() potrebbe ritornare 0, FALSE, '', NULL.

e if(session_id()===""){} sta controllando se session_id() sta tornando stringa vuota, quindi l'unica opzione, per il quale la dichiarazione if restituirà TRUE, è ''.

Da manuale PHP su session_id():

session_id() restituisce l'id di sessione per la sessione corrente o la stringa vuota ("") se non v'è alcuna sessione corrente (non esiste alcuna sessione corrente id) .

Quindi, il preferibile è utilizzare la prima.

Problemi correlati