3v4l.org

run code in 500+ PHP versions simultaneously
<?php /** @return class-string */ function getClassName(object $class): string { return $class::class; }; /** @param list $data */ function fromArrays(array $data, object $object): mixed { $className = getClassName($object); $callback = [$className, 'from']; if (!is_callable($callback)) { throw new RuntimeException('bad callable'); } return forward_static_call_array($callback, $data); } class A { public static function from() { var_dump(__METHOD__); } } fromArrays([], new A);
Output for 8.0.10, 8.1.0 - 8.1.34, 8.2.0 - 8.2.32, 8.3.0 - 8.3.33, 8.4.1 - 8.4.24, 8.5.0 - 8.5.9
string(7) "A::from"
Output for 7.4.15
Fatal error: Cannot use ::class with dynamic class name in /in/Cb8AZ on line 5
Process exited with code 255.
Output for 7.0.0, 7.1.0, 7.2.10, 7.3.0
Fatal error: Dynamic class names are not allowed in compile-time ::class fetch in /in/Cb8AZ on line 5
Process exited with code 255.

preferences:
73.46 ms | 1064 KiB | 4 Q