【问题标题】:setcookie() expects parameter 3 to be integer, array givensetcookie() 期望参数 3 为整数,给定数组
【发布时间】:2019-12-15 12:42:51
【问题描述】:

我收到这个 PHP 错误:

PHP 警告:setcookie() 期望参数 3 为整数,给定数组

使用此代码:

$setResult = setcookie(
    'visitorId',
    "{$newIdForNewVisitor}",
    [
        'httponly' => true,
        'expires' => time() + (50 * 365 * 24 * 60 * 60)
    ]
);

但在the setcookie documentation 的第二个示例中,我看到参数 3 上的 options 参数可以采用关联数组:

一个关联数组,它可能具有过期、路径、域、安全、httponly 和samesite 中的任何键。这些值的含义与对同名参数的描述相同。 samesite 元素的值应为 Lax 或 Strict。如果没有给出任何允许的选项,它们的默认值与显式参数的默认值相同。如果省略 samesite 元素,则不设置 SameSite cookie 属性。

这里犯了什么错误?

【问题讨论】:

  • 在 PHP 7.3.0 中引入了带有数组的缩短版本。您使用的是该版本还是旧版本?
  • @rickdenhaan 是正确的——见the changelog
  • 我使用的是 PHP 7.2 所以这就是原因,谢谢。

标签: php cookies


【解决方案1】:

您可能需要检查您正在运行的 PHP 版本。 setcookie 函数的替代签名仅在 PHP 7.3.0 版本中添加。

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 2017-11-14
    • 2020-12-30
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多