3v4l.org

run code in 500+ PHP versions simultaneously
<?php class Demo {}; $o = new class extends Demo {}; $r = new ReflectionClass($o::class); echo $r; var_dump($o::class); var_dump(str_replace("\0", "\\x00", $o::class)); $withoutNull = substr($o::class, 0, strpos($o::class, "\0")); var_dump($withoutNull); try { new ReflectionClass($withoutNull); } catch (Throwable $e) { echo $e; }
Output for 8.5.0 - 8.5.9
Class [ <user> class Demo@anonymous/in/7LSSp:5$0 extends Demo ] { @@ /in/7LSSp 5-5 - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [0] { } } string(28) "Demo@anonymous/in/7LSSp:5$0" string(31) "Demo@anonymous\x00/in/7LSSp:5$0" string(14) "Demo@anonymous" ReflectionException: Class "Demo@anonymous" does not exist in /in/7LSSp:15 Stack trace: #0 /in/7LSSp(15): ReflectionClass->__construct('Demo@anonymous') #1 {main}
Output for 8.2.31 - 8.2.33, 8.3.0 - 8.3.33, 8.4.1 - 8.4.24
Class [ <user> class Demo@anonymous extends Demo ] { @@ /in/7LSSp 5-5 - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [0] { } } string(28) "Demo@anonymous/in/7LSSp:5$0" string(31) "Demo@anonymous\x00/in/7LSSp:5$0" string(14) "Demo@anonymous" ReflectionException: Class "Demo@anonymous" does not exist in /in/7LSSp:15 Stack trace: #0 /in/7LSSp(15): ReflectionClass->__construct('Demo@anonymous') #1 {main}

preferences:
48.26 ms | 813 KiB | 4 Q