1

PHPSessionHandlerSessionHandler::write()は、値を返すものがあります。マニュアルはそれについてやや曖昧です:

戻り値

戻り値 (通常TRUEは成功時FALSE、失敗時)。この値は、処理のために PHP に内部的に返されることに注意してください。

(インターフェースも同様)

PHPによるその処理の意味は何なのだろうか。

私はすでにそれほど賢く調べましsession_set_save_handlerたが、コールバックの戻り値についてはwrite()言及されていません。

4

1 に答える 1

0

さて、このコンテキストでの「内部的に PHP に返される」とは、コードに返されないことを意味します (の戻り値の型session_write_close()void.)

言い換えれば、PHP がそれに対して行うことは不明として扱われるべきです (PHP の実際の C ソースを見ない限り)。したがって、カスタム セッション ハンドラが何らかの理由でセッション データを書き込めなかった場合trueは、成功時に戻るというアドバイスに従うだけです。false

推測するなら、おそらく PHP が警告メッセージを生成しないか、それとも単に PHP の新しいバージョンで使用することを意図したものであると言えます。

調べる方法は、単純にオーバーライドSessionHandler::write()して常に false を返し、何が起こるかを確認することです。コンソールで警告を確認します。

于 2013-01-30T14:35:27.803 に答える