发现错误:
1.E_WARNING:session_destroy(): Session callback expects true/false return value
2.E_WARNING:session_destroy(): Session object destruction failed
原因是session是使用了
session_set_save_handler(
array($handler, 'open'),
array($handler, 'close'),
array($handler, 'read'),
array($handler, 'write'),
array($handler, 'destroy'),
array($handler, 'gc')
);
注意红色区域,在调用destroy的时候redis代码是这样的,如下
public function destroy($sid) { if(!empty($this->config['sid_prefix'])) { $sid = $this->config['sid_prefix'].$sid; } return $this->redis->delete($sid); } 官方文档说了,成功时返回 TRUE, 或者在失败时返回 FALSE。 但是 这里却返回的是数字1。发生的这样的错误 解决办法是将
return $this->redis->delete($sid); 替换成
return (bool)$this->redis->delete($sid); 这样就确保返回值是booler值了
原文链接:session_destroy(): Session callback expects true/false return value,转载请注明来源!