私はキーでセッション変数を取得し、それを変数に再割り当てする関数を持っています。セッション変数の設定を解除し、設定した変数を返します。何らかの理由でそれが返ってきています。私がunsetを取り除くと、うまくいく。セッション変数で奇妙なunset()問題
これはヌル
if(isset($_SESSION[$key])) {
$session_variable = $_SESSION[$key];
var_dump($session_variable);
unset($_SESSION[$key]);
var_dump($session_variable);
return $session_variable;
}
return '';
を返すこれは
if(isset($_SESSION[$key])) {
$session_variable = $_SESSION[$key];
var_dump($session_variable);
// unset($_SESSION[$key]);
var_dump($session_variable);
return $session_variable;
}
return '';
を省略されたときに解除変数$ session_variableを削除して、なぜ未設定の私は理解していない、正しい出力を返します。前の変数
EDIT
セッションはこの
$_SESSION['action'] = ['message' => 'bla', 'status' => 'success'];
のように設定されている機能は、それは$_SESSION[$key]
が本当に何であるかに依存します。この
(new Request)->getFlashedSessionVar('action'); //For testing
あなたのコードは私のために未設定のセッションを省略せずに正常に動作しているため、その作業罰金。 – Sahathulla
PHPフレームワークを使用しているのですか? – Ronald
私は従来のカスタムフレームワークを使用していますが、そのほとんどは生のPHPです。私は別の設定されていない関数を探しましたが、存在しないので、上書きされていません。私も間違いがあるので、何かが間違っているかどうかを確認する必要があります。 –