3v4l.org

run code in 500+ PHP versions simultaneously
<?php class A {} class B {} class X { private function create(string $class): A|B { return new $class(); } public function createA(): A { return $this->create('A'); } public function createB(): B { return $this->create('B'); } } $test = new X; $new = $test->createB(); var_export($new);

preferences:
71.22 ms | 1102 KiB | 5 Q