1

使用 PHPSessionHandler可以SessionHandler::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 回答