1

私のサイトには がたくさんありsession_start();ます。含まれている一部のファイルは AJAX でも呼び出されるため、この場合はセッションを開始する必要があります。

私がサイトを書いたとき、セッションがすでに開始されているときにサーバーが単にそれを無視することを知っていたので、何度も開始することを気にしませんでした.

これを行うことに問題はありますか?セッションを再度呼び出す前に、セッションが開始されているかどうかを事前に確認する必要がありますか?

4

1 に答える 1

1

これを行うことに問題はありますか?

E_NOTICE が発生しますが、2 回目 (および 3 回目、4 回目、...) の呼び出しsession_startは効果がありません。

ただし、個人的には、セッションを既に開始しているかどうかが「わからない」場合は、コードの匂いだと考えています。可能であれば、セッションがすでに開始されているかどうかが明確になるようにコードを設計してください。

また、ジェームズがマニュアルのコメントで指摘しているように:

4.3.3 以降、セッションを 2 回開始したときに PHP によってコミットされた通知を回避するには、session_id()最初に以下を確認してください。

if (session_id() == "")
    session_start();
于 2012-07-05T07:00:44.997 に答える