php - $_SESSION 变量未设置值
问题描述
[已解决]在我的login.php
中
,设置了几个$_SESSION
变量。
我最近添加了另一个 = $_SESSION['darkM'] = false;
。
做一个var_dump($_SESSION);
(结果如下),我的其他变量的值设置得很好,但这个不会!
我尝试将其设置为字符串('test'
),但在 var_dump 中仍然返回空。只有这个变量不会设置。
我检查了我的error_log,什么都没有!只是为了澄清,session_start();
已经设置在我声明变量的上方。知道为什么会发生这种情况吗?
- - - 编辑 - - -
登录.php:
<?php
session_start();
// Store data in session variables
$_SESSION["loggedin"] = true; // No error
$_SESSION["tenant"] = $tenant; // No error
$_SESSION['darkM'] = false; // Also tried setting to 'test'
VAR_DUMP($_SESSION):
Array ( [loggedin] => 1 [tenant] => Coledon [darkM] => )
解决
我不知道为什么这会有所不同,但我将变量从更改 $_SESSION['darkM']
为 $_SESSION['dark_mode']
。再做var_dump
一个新的结果是:array(1) { ['dark_mode']=> bool(false) }
所以我不再有问题,但仍然不知道为什么会这样?没有打字问题/隐藏字符。
另外,如果有人遇到同样的问题,请参阅navnath和Reflective的答案——重要的是要记住!
解决方案
完全没问题,只是print_r
处理false
方式与您预期的不同。使用var_dump
它显示变量的值和类型,而不是将它们转换为字符串print_r
。
<?php
session_start();
$_SESSION['darkMode'] = false;
print_r($_SESSION);
var_dump($_SESSION);
?>
输出
Array
(
[darkMode] =>
)
array(1) {
["darkMode"]=>
bool(false)
}
推荐阅读
- openpyxl - openpyxl:chart.title =“图表标题”不起作用。如何将标题添加到散点图?
- r - R - 当两列或多列连续匹配时,在数据框中创建新列
- python - 通过矩阵查找所有路线
- php - 从 url 路径中获取最后 3 个单词
- gradle - Kotlin 依赖项的行为不像 Kotlin
- json - 如何在 Haxe 中将 JSON/动态结构转换为地图?
- javascript - querySelector 不返回 iframe 内的类元素
- node.js - 使用 Firebase CLI 尝试部署时出现 NPM 错误
- mysql - MySql 5.6:忽略 my.ini 中的 innodb_page_size 设置
- flutter - Is there any way to write to a pre-existing text file in flutter?