src/includes/traits/CacheMembers.php
protected function &cacheSet(string $primary_key, $sub_key, $value)
    {
        if ($primary_key === 'x___keys' || $primary_key === 'x___refs') {
            throw $this->c::issue('Attempting to set a reserved primary key.');
        }
        $sub_key                                 = (string) $sub_key;
        $this->x___cache[$primary_key][$sub_key] = $value;
        return $this->x___cache[$primary_key][$sub_key];
    }
protected function &cacheSet(string $primary_key, $sub_key, $value)
    {
        if ($primary_key === 'x___keys' || $primary_key === 'x___refs') {
            throw $this->c::issue('Attempting to set a reserved primary key.');
        }
        $sub_key                                 = (string) $sub_key;
        $this->x___cache[$primary_key][$sub_key] = $value;
        return $this->x___cache[$primary_key][$sub_key];
    }
Set a cache sub-key.

@since 150424 Initial release.

@param string     $primary_key Primary key.
@param string|int $sub_key     Sub-key to set.
@param mixed      $value       New cache key value.

@return mixed|null Value (by reference) for the cache sub-key.

@internal Returns by reference. The use of `&` is highly recommended when calling this utility.
See also: <http://php.net/manual/en/language.references.return.php>