ownerGrammar = \WeakReference::create($ownerGrammar); $this->_scopeName = $scopeName; } public function get(): Grammar { if ($this->object !== null) { return $this->object; } elseif ($this->object === false) { return null; } $grammar = Registry::get($this->_scopeName); if ($grammar === null) { $this->object = false; return null; } $this->object = $this->ownerGrammar->get()->adopt($grammar); return $this->object; } }