public function offsetSet($offset, $value) : void
    {
        if ($this instanceof PropertyLimitable) {
            if (!in_array($offset, $this->concreteAttributes())) {
                throw new \LogicException('Property not defined as a concrete property.');
            }
        }
        $this->accessableOffsetSet($offset, $value);
    }
public function offsetSet($offset, $value) : void
    {
        if ($this instanceof PropertyLimitable) {
            if (!in_array($offset, $this->concreteAttributes())) {
                throw new \LogicException('Property not defined as a concrete property.');
            }
        }
        $this->accessableOffsetSet($offset, $value);
    }
public function offsetSet ( $ offset , $ value ) : void { if ( $ this instanceof PropertyLimitable ) { if ( ! in_array ( $ offset , $ this -> concreteAttributes ( ) ) ) { throw new \ LogicException ( 'Property not defined as a concrete property.' ) ; } } $ this -> accessableOffsetSet ( $ offset , $ value ) ; }
Set a value if allowed by the concrete attributes.

If this object does not implement PropertyLimitable, the value
will always be set.

@param mixed $offset
@param mixed $value
@return void
@throws \LogicException
Set a value if allowed by the concrete attributes .