<?php
class Foo {
protected $array = [];
public function addGlobal($key, $value) {
$this->array[$key] = $value; return $this;
}
public function getGlobal($key) {
return $this->array[$key] ??
null; }
}
class Bar {
protected $value;
public function setValue($value) {
$this->value = $value;
return $this;
}
public function getValue() {
return $this->value;
}
}
$foo = new Foo();
$bar = new Bar();
$bar->setValue('foobar');
$array = [ 'bar' => 'foobar', ];
$foo->addGlobal('array', $array);
$foo->addGlobal('object', $bar);
$array['bar'] = 'bar';
$bar->setValue('bar');
var_dump($foo->getGlobal('object')->getValue()); var_dump($foo->getGlobal('array')['bar']);
PD9waHAKCmNsYXNzIEZvbyB7Cglwcm90ZWN0ZWQgJGFycmF5ID0gW107CgkKCXB1YmxpYyBmdW5jdGlvbiBhZGRHbG9iYWwoJGtleSwgJHZhbHVlKSB7CgkJJHRoaXMtPmFycmF5WyRrZXldID0gJHZhbHVlOwoJCXJldHVybiAkdGhpczsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldEdsb2JhbCgka2V5KSB7CgkJcmV0dXJuICR0aGlzLT5hcnJheVska2V5XSA/PyBudWxsOwoJfQp9CgpjbGFzcyBCYXIgewoJcHJvdGVjdGVkICR2YWx1ZTsKCQoJcHVibGljIGZ1bmN0aW9uIHNldFZhbHVlKCR2YWx1ZSkgewoJCSR0aGlzLT52YWx1ZSA9ICR2YWx1ZTsKCQlyZXR1cm4gJHRoaXM7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXRWYWx1ZSgpIHsKCQlyZXR1cm4gJHRoaXMtPnZhbHVlOwoJfQp9CgokZm9vID0gbmV3IEZvbygpOwokYmFyID0gbmV3IEJhcigpOwoKJGJhci0+c2V0VmFsdWUoJ2Zvb2JhcicpOwokYXJyYXkgPSBbICdiYXInID0+ICdmb29iYXInLCBdOwoKJGZvby0+YWRkR2xvYmFsKCdhcnJheScsICRhcnJheSk7CiRmb28tPmFkZEdsb2JhbCgnb2JqZWN0JywgJGJhcik7CgokYXJyYXlbJ2JhciddID0gJ2Jhcic7CiRiYXItPnNldFZhbHVlKCdiYXInKTsKCnZhcl9kdW1wKCRmb28tPmdldEdsb2JhbCgnb2JqZWN0JyktPmdldFZhbHVlKCkpOwp2YXJfZHVtcCgkZm9vLT5nZXRHbG9iYWwoJ2FycmF5JylbJ2JhciddKTs=