php实现cookie即时生效

今天学生在做练习的时候遇到了PHP中的cookie必须刷新才能生效的问题,可用以下方法解决:

  1. // php COOKIE设置函数立即生效,支持数组
  2. function cookie($var, $value = '', $time = 0, $path = '', $domain = '', $s = false)
  3. {
  4. $_COOKIE[var] = $value;
  5. if (is_array($value)) {
  6. foreach ($value as $k => $v) {
  7. setcookie($var .'['.$k.']', $v, $time, $path, $domain, $s);
  8. }
  9. } else {
  10. setcookie($var,$value, $time, $path, $domain, $s);
  11. }
  12. }

这样就不用刷新,直接就可以获得cookie的值了,cookie参数详情请看php手册

提示:这段代码中对于cookie即时更新起作用的就是这两句:

$_COOKIE[$var] = $value;

setcookie($var,$value,$time,$path,$domain,$s);

也就是对cookie一次进行了两次赋值。