3v4l.org

run code in 500+ PHP versions simultaneously
<?php $info = new SplFileInfo( __FILE__ ); try { serialize($info); } catch (\Throwable $e) { echo $e . "\n\n\n"; } class MyFileInfo extends SplFileInfo { public function __serialize(): array { return [ 'file' => getPathname(), ]; } public function __unserialize(array $data) { $this->__construct($data['file']); } } $info2 = new MyFileInfo( __FILE__ ); try { $serialized = serialize($info2); $roundtrip = unserialize($serialized); var_dump($info2, $roundtrip); } catch (\Throwable $e) { echo $e . "\n"; }

preferences:
49.11 ms | 484 KiB | 5 Q