上記のこと。意外にも、私はこれに明確な答えを見つけることができませんでした。PHPのsession_start()は等価ですか?
スクリプト内で2回以上呼び出すことが問題であるかどうかを知りたいだけです。 the manualを引用
上記のこと。意外にも、私はこれに明確な答えを見つけることができませんでした。PHPのsession_start()は等価ですか?
スクリプト内で2回以上呼び出すことが問題であるかどうかを知りたいだけです。 the manualを引用
:
PHP 4.3.3の時点で、 以前に開始されたセッションがレベル
E_NOTICE
のエラーになります後session_start()
を呼び出します。
また、2番目のセッションの開始は無視されます。
だから、それは多くを行うことはありません - 問題のいくつかの種類があることを示しており、通知を上げる以外;つまり、この関数を複数回呼び出さないでください。
編集@ hakreさんのコメントの後:は念のために、私は確信してエラーを行った後、二回のsession_start()を呼び出すコードの以下の部分でテストしてみたとの通知が報告されます:
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL | E_STRICT);
session_start();
session_start();
そして、私は次の注意得るか:
Notice: A session had already been started - ignoring session_start() in /.../temp.php on line 6
いいえ、session_start
冪等されていないが、それは言語のランタイム状態に依存しています。
通常は2回以上呼び出すことができますが、いくつかの警告やエラーが発生することはありませんが、セッション状態や呼び出しの設定を変更しても機能は変わりません。
関数を呼び出すと、セッション状態が変更されるため、冪等の非常に厳密なビューでは完全にはありません。
さらに、$_SESSION
に対応するその機能の結果は、関連するストア、セッション名、およびセッションIDによって定義されたままであることに注意することが重要です。
エラー(セッションは既に開始されています)が発生します。
ただし、エラーを無視すると、冪等があります。
PHP 5.4では、我々は得るでしょう: http://nl3.php.net/manual/en/function.session-status.php
+1を私に新しい単語を教えるため。 http://en.wikipedia.org/wiki/Idempotence – vascowhite
-1間違ったサイトを使って他の人に新しい言葉を教えるためです。また、質問をする前に簡単なテストを行ったり、ドキュメントのページを読んだりすることさえありません。 –