Installation instantanée des cookies en PHP

Afin qu'un cookie défini apparaisse immédiatement dans le tableau $_COOKIE, on peut utiliser une astuce. L'essence de l'astuce est la suivante : d'abord, définissons le cookie à l'aide de setcookie, puis inscrivons-le manuellement dans le tableau $_COOKIE :

php<?php
  setcookie('str', 'eee');
  $_COOKIE['str'] = 'eee';
  
  var_dump($_COOKIE['str']); // affichera immédiatement 'eee'
?>

Pour éviter que le cookie ne soit envoyé à chaque fois au navigateur, on peut placer le code de définition du cookie dans une condition. Si le cookie n'existe pas, alors on le définit :

php<?php
  if (!isset($_COOKIE['str'])) { // si le cookie n'existe pas
    setcookie('str', 'eee');
    $_COOKIE['str'] = 'eee';
  }
  
  echo $_COOKIE['str']; // affichera 'eee'
?>

Discutons du fonctionnement. Lors de la première visite sur la page, nous entrerons dans le if, nous définirons le cookie dans le navigateur et l'inscrirons immédiatement dans $_COOKIE. Ensuite, via echo, la valeur que nous avons manuellement inscrite sera affichée.

Lors des visites suivantes sur la page, nous n'entrerons pas dans le if, mais $_COOKIE contiendra notre cookie, déjà venu du navigateur. Ainsi, que ce soit lors de la première visite ou lors des suivantes, $_COOKIE contiendra notre cookie.

Задание 1

Testez l'astuce décrite.