在 PHP 手册http://www.php.net/manual/en/function.session-set-save-handler.php的这个页面上,我找到了这个函数规范:bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc )
它表示所有参数都应该是回调。但我也在那个页面上找到了这个例子:
class FileSessionHandler
{
private $savePath;
function open($savePath, $sessionName)
{
$this->savePath = $savePath;
if (!is_dir($this->savePath)) {
mkdir($this->savePath, 0777);
}
return true;
}
function close()
{
...
}
...
}
$handler = new FileSessionHandler();
session_set_save_handler(
array($handler, 'open'),
array($handler, 'close'),
array($handler, 'read'),
array($handler, 'write'),
array($handler, 'destroy'),
array($handler, 'gc')
);
中的每个参数session_set_save_handler
都是一个数组,其中第一个元素是处理程序对象,第二个元素是字符串。
为什么这些数组可以用作回调?我参考了 Array,回调手册,但没有找到任何关于这如何可能的线索。