Логическая ошибка в троичном операторе - PullRequest
0 голосов
/ 03 октября 2011

Может кто-нибудь объяснить мне, почему этот троичный оперетор возвращает второй вариант вместо первого?

Это код:

$token_sid =
    ($user->data['user_id'] == ANONYMOUS &&
     !empty($config['form_token_sid_guests'])) ? $user->session_id : '';

А вот значения для моего реального тестирования

$user->data['user_id'] = 36412
ANONYMOUS = 1
$config['form_token_sid_guests'] = 0
$user->session_id = 4c148b664b7284ecb776c0a932ddf008

$token_sid = ''

Есть идеи, почему они возвращают пустое значение вместо идентификатора сеанса пользователя?

1 Ответ

2 голосов
/ 03 октября 2011
$user->data['user_id'] = 36412

не равно

ANONYMOUS = 1

(36412! = 1) Таким образом, первое «И» -условие не будет выполнено, а ваш остальное- «Блок» будет оценен.

...