gpt4 book ai didi

php - 覆盖 $_SESSION 变量类型时的奇怪问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:42:04 25 4
gpt4 key购买 nike

我已经尽可能简短地总结了问题的关键:

一个简单的脚本:

<?php
session_start();

$_SESSION['user']="logged";

然后覆盖

$_SESSION['user']=0;  

并显示$_SESSION内容

var_dump($_SESSION);

显示 $_SESSION['user'] 是 '0' - 确定,因为它刚刚被覆盖

但是现在看

if ($_SESSION['user']=="logged"){
echo "logged";
}
else{
echo "unlogged";
}

输出“记录”...

似乎变量类型的改变只是表面上的——我不知道我做错了什么..我是否需要使用 === 比较来检查类型?

最佳答案

没错,你需要做严格的比较===

那是因为 PHP 尝试将您的字符串转换为数字,因此“记录”传递为 0

然后 0 == 0

  • (int)“记录”= 0
  • (int) "1logged"= 1
  • (int) "logged1"= 0

http://www.php.net/manual/en/language.types.type-juggling.php

关于php - 覆盖 $_SESSION 变量类型时的奇怪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12364524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com