設定されていないセッション変数が実行を停止する

私はコードのこの部分に夢中になり、unset関数に絞っています。セッション変数でunsetを呼び出すと、PHPはその点を超えて何も実行しません。誰かが助けてくれますか?

public static function print_session_notification() {

    if( isset( $_SESSION['notification'] )) {
        $session_notification = $_SESSION['notification'];

        $output = '<div class="error">';
        $output .= $_SESSION['notification'];
        $output .= '</div>';

        unset( $_SESSION['notification'] );

        return $output;
    }
}

私はprint notification :: print_session_notification()を呼び出します。ヘッダーから。ヘッダインクルードは関数によって呼び出されます。 $通知オブジェクトは、ヘッダーファイルを呼び出す関数ではグローバルです。

2
register_globalsが 'ON'になっていますか? php.net/manual/en/function.unset.php#40539 関連性があります: 追加された 著者 Phill Pafford,
セッションの値を$ session_notificationにローカライズするが、それを使用しないのはなぜですか?あなたはちょうどその行を取り除くことができるように思えます。
追加された 著者 Mike Purcell,
最低でも print_session_notification()を呼び出すコードまたは関数を参照する必要があります。
追加された 著者 Michael Berkowski,
あなたが投稿したコードに何も問題はありません。あなたのエラーを再現することはありません。可能な限り小さなコードでエラーを再現してみてください。私たちは、あなたが投稿したものであなたを助けることはできません。
追加された 著者 meagar,
私に見える
追加された 著者 NikiC,
ごめんなさい私はprint notification :: print_session_notification()を呼び出すことを忘れていました。ヘッダーから。ヘッダインクルードは関数によって呼び出されます。
追加された 著者 user182038,

2 答え

ヘッダーにsession_start()関数を設定し、register_globalsを "ON"に設定してください。

For more information read the comments on http://www.php.net/manual/en/function.unset.php

1
追加された
私は、はいあなたの権利を参照してください。ありがとう
追加された 著者 Leysam Rosario,
Registerグローバルは、PHP 5.3.0以降では廃止されました。
追加された 著者 user182038,

私は、構造体にメソッドを追加し、セッション値をパブリックプロパティに割り当てることで、この問題を解決しました。あなたの助けを借りてくれてありがとう!

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com