- var_dump: documentation ( source)
<?php
class Container {
protected $items;
public function __construct()
{
$this->items = [];
}
public function exists($name)
{
return isset($this->item[$name]);
}
public function get($name)
{
if (!isset($this->item[$name])) {
throw new RuntimeException('Item "' . $name . '" not found');
}
return $this->item[$name];
}
public function register($name, $item, $replace = false)
{
if (isset($this->item[$name]) and $replace === false) {
throw new RuntimeException('Item "' . $name . '" already exists');
}
$this->item[$name] = $item;
return $this;
}
public function unregister($name)
{
if (!isset($this->item[$name])) {
throw new RuntimeException('Item "' . $name . '" not found');
}
unset($this->item[$name]);
}
}
$container = new Container();
$container->register('object', new class(42) {
private $value;
public function __construct($value)
{
$this->value = $value;
}
public function value()
{
return $this->value;
}
});
$object = $container->get('object');
var_dump($object->value());