1--TEST--
2Test session_set_save_handler() : session_gc() returns the number of deleted records.
3--INI--
4session.name=PHPSESSID
5session.save_handler=files
6session.gc_probability=0
7--EXTENSIONS--
8session
9--FILE--
10<?php
11
12ob_start();
13
14echo "*** Test session_set_save_handler() : session_gc() returns the number of deleted records. ***\n";
15
16class MySession implements SessionHandlerInterface {
17    public function open($path, $name): bool {
18        echo 'Open', "\n";
19        return true;
20    }
21    public function read($key): string|false {
22        echo 'Read ', session_id(), "\n";
23        return '';
24    }
25    public function write($key, $data): bool {
26        echo 'Write ', session_id(), "\n";
27        return true;
28    }
29    public function close(): bool {
30        echo 'Close ', session_id(), "\n";
31        return true;
32    }
33    public function destroy($key): bool {
34        echo 'Destroy ', session_id(), "\n";
35        return true;
36    }
37    public function gc($ts): int|false {
38        echo 'Garbage collect', "\n";
39        return 1;
40    }
41}
42
43$handler = new MySession;
44session_set_save_handler($handler);
45session_start();
46var_dump(session_gc());
47session_write_close();
48
49?>
50--EXPECTF--
51*** Test session_set_save_handler() : session_gc() returns the number of deleted records. ***
52Open
53Read %s
54Garbage collect
55int(1)
56Write %s
57Close %s
58