PHP7.3中setcookie()的正确语法是什么?

PHP7.3中setcookie()的正确语法是什么?,php,setcookie,Php,Setcookie,PHP7.3中setcookie()的正确语法是什么?我通常使用setcookie()如下: setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1); 这是可行的,但是如何添加samesite选项呢?我试过这样做,但是失败了,出现了php错误: setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1,['samesite'

PHP7.3中setcookie()的正确语法是什么?我通常使用setcookie()如下:

setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1);
这是可行的,但是如何添加samesite选项呢?我试过这样做,但是失败了,出现了php错误:

setcookie("genone", "genoneinfo", "$cookie_expiration_time","/","",1,1,['samesite'=>'Lax']);
错误:PHP警告:setcookie()最多需要7个参数,第73行给定zzz.com/index.PHP的参数为8个,参考:

谢谢,
Todd

PHP7.3引入了一种替代语法:

已添加支持选项数组的替代签名。此签名还支持SameSite cookie属性的设置

这意味着您只能像在旧版本中一样提供前两个参数,并将其余的参数放入选项数组中:

setcookie('genone', 'genoneinfo', [
    'expires' => $cookie_expiration_time,
    'path' => '/',
    'domain' => '',
    'secure' => true,
    'httponly' => true,
    'samesite' =>'Lax',
]);
根据文档中的描述,旧版本的参数名称将变成数组键:

一个关联数组,它可能具有以下任意密钥:expires、path、domain、secure、httponly和samesite。这些值的含义与为具有相同名称的参数描述的含义相同


我是一个初级程序员,不懂语法。。。看起来我需要用一大堆括号。。。此外,它们还声明了示例中的所有变量类型。。。需要吗?我从未在php中声明过变量类型……文档中的括号表示可选参数。类型存在,因此您知道该参数接受哪种类型的输入。类型声明仅用于函数定义,而不是在调用它们时。你只需要像在问题的代码示例中那样传递你需要的东西,你只需要使用替代语法。像这样?setcookie(“genone”[,“genoneinfo”[,“$cookie\u expiration\u time”[,“/”[,“”[,1[,1][1][3][]]):bool然后我必须添加相同的内容。。。像这样?:setcookie(“genone”[,“genoneinfo”[,“$cookie\u expiration\u time”[,“/”[,”[,1[,“SameSite=Lax”\\\\\\\\\\\]]):boolNo。正如我所说,文档中的括号只是指“可选参数”,如“如果您可以使用默认值,则可以跳过此参数”。您太棒了。。。非常感谢你!!!我现在正在阅读php手册中的示例,并将其与您的示例进行比较,以便能够完全理解发生了什么。。。再次感谢!非常感谢!