3

次のコード スニペットをご覧ください。セッション変数が空でないことを確認するための最良のテスト方法は何ですか?

<?php if ($this->session->userdata('userID')) {
   $loggedIn = 1;
}
else {
   $loggedIn = 0;
} ?>

スクリプトの後半で次を呼び出すと、最初は正しく出力されますが、2 番目にMessage: Undefined variable: loggedInが表示されます。

<?php echo $this->session->userdata('userID'));
      echo $loggedIn; ?>

と を使用してみまし!emptyissetが、どちらも失敗しました。また、 を使用して if/then ステートメントを逆方向に実行しようとしましたif (!($this->session->userdata('userID'))が、サイコロは使用しませんでした。何かご意見は?

4

4 に答える 4

9

代わりに次のことを試してください。

<?php 
$loggedIn = 0;
if ($this->session->userdata('userID') !== FALSE) {
   $loggedIn = 1;
}
?>

エラーが続く場合は、別のスコープでその変数を呼び出す場合に備えて、さらにコードを投稿する必要があります。

于 2012-05-23T01:33:02.637 に答える
2

セッション変数が設定されているかどうかを確認することが目的の場合'userID'、次のように動作するはずです。

$this->session->userdata('userID') !== false
于 2012-05-23T01:34:04.713 に答える
0

セッションにis_logged_inというブールフィールドを作成して、次のように確認してみませんか。

if(false !== $this->session->userdata('is_logged_in'))
于 2012-05-23T09:25:27.297 に答える
0
if($this->session->userdata('is_logged_in')) {
    //then condition
}

これが正しいテスト方法です。

于 2014-04-11T16:21:42.070 に答える