3v4l.org

run code in 300+ PHP versions simultaneously
<?php class SessionTest implements \SessionHandlerInterface { public function __construct() { session_set_save_handler($this, true); } public function open(string $save_path, string $name): bool { return true; } public function close(): bool { return true; } public function read(string $session_id): string { return ''; } public function write(string $session_id, string $session_data): bool { return true; } public function destroy(string $session_id): bool { return true; } public function gc(int $maxlifetime): bool { return true; } } $SessionTest = new SessionTest();
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
Deprecated: Return type of SessionTest::gc(int $maxlifetime): bool should either be compatible with SessionHandlerInterface::gc(int $max_lifetime): int|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/7rrtb on line 35 Warning: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent in /in/7rrtb on line 7
Output for 8.0.0 - 8.0.30
Output for 7.4.0 - 7.4.33
Fatal error: Declaration of SessionTest::open(string $save_path, string $name): bool must be compatible with SessionHandlerInterface::open($save_path, $session_name) in /in/7rrtb on line 10
Process exited with code 255.
Output for 7.3.0 - 7.3.33
Fatal error: Declaration of SessionTest::open(string $save_path, string $name): bool must be compatible with SessionHandlerInterface::open($save_path, $session_name) in /in/7rrtb on line 3
Process exited with code 255.

preferences:
48.29 ms | 410 KiB | 5 Q