"filter_input" 与 "INPUT_COOKIE" 之前的 cookie 值?

"filter_input" vs "INPUT_COOKIE" previous value of the cookie?

我有这个:

if( isset($_COOKIE['someCookie']) && filter_input(INPUT_COOKIE, 'someCookie') != '' ){
    $idX = filter_input(INPUT_COOKIE, 'someCookie');

    var_dump('cookie:' . $_COOKIE['someCookie']);
    var_dump('variable:' . $idX);
}

在执行此脚本之前,cookie 使用我的数据库中的操作标识更新其值。

第一次执行时,"var_dump"显示如下:

cookie: 1

variable: 1

好的,但是当我执行另一个操作时,生成一个新的 id,加载页面,并更新 cookie,第二次执行时显示:

cookie: 2

variable : 1

我无法理解,就像 "filter_input" 正在获取 cookie 的旧值。

您正在页面上设置 cookie,因此您的 idx 值正在读取页面加载时存储在服务器上的值。您在同一个脚本中设置了 cookie,因此您需要重新加载页面以使 idx 变量显示相同的内容。