从手册:
在下一次加载可以看到cookie的页面之前,Cookie不会显示
这意味着在下一页加载之前setcookie无法访问创建的cookie $_COOKIE.有没有解决这个问题?有没有办法检测setcookiePHP中创建的cookie 而无需重新加载?
我无法修改setcookie当前代码库中调用附近的代码.所以这样的解决方案不起作用:
setcookie('test', 'my test value');
$_COOKIE['test'] = 'my test value';
Run Code Online (Sandbox Code Playgroud)
_COOKIES超全局是作为脚本初始化的一部分创建的,然后由PHP单独保留.因此,您稍后在脚本中创建的任何cookie都不会神奇地出现在数组中,因为它们在初始化时不存在.
您可以覆盖内置的setcookie功能runkit_function_redefine(),但如果您不是非常小心,您可以打开自己,直到受伤的世界.
您可以使用会话,它将立即可用,并将限制存储在cookie中的数据量,因为它只会存储会话ID.您也可以使用复杂数据.
<?php
$_SESSION['my_var'] = 'something';
$_SESSION['another_var'] = array(1, 2, 3);
$my_var = $_SESSION['my_var'];
echo $my_var;
?>
Run Code Online (Sandbox Code Playgroud)