array_push 在 foreach 内部使用时不增加价值 > if
array_push does not add value in case of used inside of foreach > if
我目前正在为我的项目开发一个网站,但出于某种原因,当一切都按原样进行时(会话已启动,会话变量已定义),那么只有 array_push() 函数不将值添加到会话变量,当我将 array_push() 移出 if、foreach 和 if(如果包含 foreach 并且 foreach 包含另一个 if)时,它工作正常,我已经尝试将它放在第一位如果,然后 foreach 但它没有帮助。所以它只有在它不在该代码中时才有效(当它不在那个 if 中时,它包含 foreach,它包含另一个 if)。请尝试理解,我的英语不好。
我该怎么做才能修复它?
if(isset($_GET["setLang"])) {
foreach ($languages as $item) {
if($item === $_GET["setLang"]) {
$_SESSION["selLang"] = $item;
array_push($_SESSION["sessionMessage"], "Language changed successfully!");
header("location: index.php?path=/");
exit();
}
}
}
由于代码在 if 语句之外正常工作,很明显是条件导致了问题
$item === $_GET["setLang"]
使用三元组 = 将检查值和类型。所以可能每个的类型都不同于其他的。
替换为:
$item == $_GET["setLang"] // only use two =
我目前正在为我的项目开发一个网站,但出于某种原因,当一切都按原样进行时(会话已启动,会话变量已定义),那么只有 array_push() 函数不将值添加到会话变量,当我将 array_push() 移出 if、foreach 和 if(如果包含 foreach 并且 foreach 包含另一个 if)时,它工作正常,我已经尝试将它放在第一位如果,然后 foreach 但它没有帮助。所以它只有在它不在该代码中时才有效(当它不在那个 if 中时,它包含 foreach,它包含另一个 if)。请尝试理解,我的英语不好。
我该怎么做才能修复它?
if(isset($_GET["setLang"])) {
foreach ($languages as $item) {
if($item === $_GET["setLang"]) {
$_SESSION["selLang"] = $item;
array_push($_SESSION["sessionMessage"], "Language changed successfully!");
header("location: index.php?path=/");
exit();
}
}
}
由于代码在 if 语句之外正常工作,很明显是条件导致了问题
$item === $_GET["setLang"]
使用三元组 = 将检查值和类型。所以可能每个的类型都不同于其他的。
替换为:
$item == $_GET["setLang"] // only use two =