В A, 3 тестируется на равенство против каждого члена набора, уступая (ЛОЖЬ, ЛОЖЬ, ПРАВДА, НЕИЗВЕСТНЫЙ). Так как один из элементов ПРАВДА, условие является TRUE. (Также возможно, что некоторое замыкание накоротко происходит здесь, таким образом, это на самом деле останавливается, как только это поражает первого TRUE и никогда не оценивает 3=NULL.)
В B, я думаю, что он оценивает условие как НЕ (3 в (1,2, пустой указатель)). Тестируя 3 для равенства против урожаев набора (ЛОЖЬ, ЛОЖЬ, НЕИЗВЕСТНАЯ), который агрегирован к НЕИЗВЕСТНОМУ. НЕ (НЕИЗВЕСТНЫЕ) НЕИЗВЕСТНЫЕ Урожаи. Таким образом, в целом истина условия неизвестна, который в конце по существу рассматривают как ЛОЖЬ.
попробуйте включить параметр домена:
setcookie("name", "val", expire_time, "/", ".domain.com");
// don't forget the prefixing period: .domain.com
, который включит все судомены "domain.com"
Вы тестируете на localhost? В этом случае вам нужно передать null в качестве значения для $ domain
.
Установка для пути cookie значения /
должна сделать его доступным для всего домена. Если вы установили свой файл cookie таким образом, и он не отправляется, что-то еще не так.
Попробуйте использовать надстройку Web Developer в Firefox. Он показывает вам подробную информацию о доступных файлах cookie. Может быть, это поможет вам диагностировать проблему.