Php 会话处理程序写入操作返回值

Php 会话处理程序写入操作返回值,php,session,Php,Session,对于PHP的SessionHandler,有一个函数返回一个值。该手册对此有点含糊不清: 返回值 返回值(成功时通常为TRUE,失败时为FALSE)。注意:该值在内部返回给PHP进行处理 () 我想知道PHP处理的意义是什么 我已经很聪明了,并且仔细研究了一下,write()回调的返回值甚至没有被提及。好吧,在这个上下文中,“内部返回到PHP”的意思是:它不会传递回代码(因为会话写入关闭()的返回类型是void) 换句话说,PHP如何处理它应该被视为未知(除非您查看PHP的实际C源代码);因此,

对于PHP的
SessionHandler
,有一个函数返回一个值。该手册对此有点含糊不清:

返回值

返回值(成功时通常为
TRUE
,失败时为
FALSE
)。注意:该值在内部返回给PHP进行处理

()

我想知道PHP处理的意义是什么

我已经很聪明了,并且仔细研究了一下,
write()
回调的返回值甚至没有被提及。

好吧,在这个上下文中,“内部返回到PHP”的意思是:它不会传递回代码(因为
会话写入关闭()
的返回类型是
void

换句话说,PHP如何处理它应该被视为未知(除非您查看PHP的实际C源代码);因此,如果您的自定义会话处理程序无法写入会话数据,我只需遵循成功返回
true
false
的建议

如果我猜的话,我会说PHP可能会生成一条警告消息,或者它只是为了在PHP的更高版本中使用


找到答案的一种方法是简单地重写
SessionHandler::write()
,始终返回false,然后查看发生了什么。检查控制台是否有任何警告。

当您转储返回的值时,您会得到什么?也许我们可以从那里得到线索?你有没有得到一个布尔或完全不同的东西?(我预计会有一个bool,因为医生这么说,但可能会变得更奇怪?这不是第一次了)@Jelmer:不可能
var\u dump
返回值。可以在返回值之前
var\u dump
该值,但是,对于该值,您可以想象任何可能的值。问题是PHP用它做什么?(为了保持简单:第一步实际上是两个值:
TRUE
FALSE
,在第二步中,可以讨论所有可能的值,包括(但不限于)
FALSE
y
simplexmlement
对象)。它的行为是否可能与mysqli对象相同?我的意思是,它将返回值“保留”在“php核心”中,直到您实际使用它为止。我想他们是这个意思。虽然我在字典里找不到相同的短语。@Jelmer:不,这是两个不同的东西,你不能比较。下面是用户php代码中的一个函数,它将值返回到当前正在解释用户php代码的二进制编译php核心代码(也称为从php引擎调用的用户回调)。我感觉你完全错过了这里的整体画面,界面是用来做什么的,回调是如何工作的。是的,的确:)我很好奇,祝你好运。