3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class Config extends ArrayObject { } final class MyClass { public function __construct(Config $config) { // Read settings echo $config['key'] . "\n"; echo $config->offsetGet('key') . "\n"; // Reading a sub-key echo $config['db']['hostname'] . "\n"; echo $config->offsetGet('db')['hostname'] . "\n"; } } // Within the DI container definition // Load settings from settings.php $settings = [ 'key' => 'value', 'db' => [ 'hostname' => '127.0.0.1', ] ]; $config = new Config($settings); // Let the DI container inject this object via autowiring new MyClass($config);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
value value 127.0.0.1 127.0.0.1

preferences:
133.62 ms | 402 KiB | 121 Q