2015-05-13 5 views
5

мне было интересно, если это, если заявление:PHP :: Лучший способ определить, если запуск сеанса

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

эквивалентно этому, если утверждение:

if(!session_id()){} 

Обе работы для меня!

, но мне нравится сортировщик, поэтому мне просто интересно, эквивалентен ли он на 100%, и я могу положиться на это, чтобы определить, запущен ли сеанс.

+0

Второй не будет работать, если у вас есть идентификатор сеанса * будет * быть как 0. Я бы придерживался первого – Rizier123

+0

Спасибо! Я бы придерживался первого :-) –

ответ

7

Эти утверждения не полностью эквивалентны.

if(!session_id()){} означает if(session_id() != TRUE){} поэтому функция session_id() может вернуться 0, FALSE, '', NULL.

и if(session_id()===""){} проверяет, если session_id() возвращается пустая строка, так что единственный вариант, для которого if оператор вернет TRUE, является ''.

От PHP Manual о session_id():

session_id() возвращает идентификатор сессии для текущей сессии или пустой строки («»), если нет текущей сессии (нет текущей сессии идентификатора не существует) ,

Итак, предпочтительнее использовать 1-й способ.

Смежные вопросы