public function offsetSet($offset, $value)
    {
        switch ($this->type) {
            case GPBType::SFIXED32:
            case GPBType::SINT32:
            case GPBType::INT32:
            case GPBType::ENUM:
                GPBUtil::checkInt32($value);
                break;
            case GPBType::FIXED32:
            case GPBType::UINT32:
                GPBUtil::checkUint32($value);
                break;
            case GPBType::SFIXED64:
            case GPBType::SINT64:
            case GPBType::INT64:
                GPBUtil::checkInt64($value);
                break;
            case GPBType::FIXED64:
            case GPBType::UINT64:
                GPBUtil::checkUint64($value);
                break;
            case GPBType::FLOAT:
                GPBUtil::checkFloat($value);
                break;
            case GPBType::DOUBLE:
                GPBUtil::checkDouble($value);
                break;
            case GPBType::BOOL:
                GPBUtil::checkBool($value);
                break;
            case GPBType::BYTES:
                GPBUtil::checkString($value, false);
                break;
            case GPBType::STRING:
                GPBUtil::checkString($value, true);
                break;
            case GPBType::MESSAGE:
                if (is_null($value)) {
                  trigger_error("RepeatedField element cannot be null.",
                                E_USER_ERROR);
                }
                GPBUtil::checkMessage($value, $this->klass);
                break;
            default:
                break;
        }
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $count = count($this->container);
            if (!is_numeric($offset) || $offset < 0 || $offset >= $count) {
                trigger_error(
                    "Cannot modify element at the given index",
                    E_USER_ERROR);
                return;
            }
            $this->container[$offset] = $value;
        }
    }
public function offsetSet($offset, $value)
    {
        switch ($this->type) {
            case GPBType::SFIXED32:
            case GPBType::SINT32:
            case GPBType::INT32:
            case GPBType::ENUM:
                GPBUtil::checkInt32($value);
                break;
            case GPBType::FIXED32:
            case GPBType::UINT32:
                GPBUtil::checkUint32($value);
                break;
            case GPBType::SFIXED64:
            case GPBType::SINT64:
            case GPBType::INT64:
                GPBUtil::checkInt64($value);
                break;
            case GPBType::FIXED64:
            case GPBType::UINT64:
                GPBUtil::checkUint64($value);
                break;
            case GPBType::FLOAT:
                GPBUtil::checkFloat($value);
                break;
            case GPBType::DOUBLE:
                GPBUtil::checkDouble($value);
                break;
            case GPBType::BOOL:
                GPBUtil::checkBool($value);
                break;
            case GPBType::BYTES:
                GPBUtil::checkString($value, false);
                break;
            case GPBType::STRING:
                GPBUtil::checkString($value, true);
                break;
            case GPBType::MESSAGE:
                if (is_null($value)) {
                  trigger_error("RepeatedField element cannot be null.",
                                E_USER_ERROR);
                }
                GPBUtil::checkMessage($value, $this->klass);
                break;
            default:
                break;
        }
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $count = count($this->container);
            if (!is_numeric($offset) || $offset < 0 || $offset >= $count) {
                trigger_error(
                    "Cannot modify element at the given index",
                    E_USER_ERROR);
                return;
            }
            $this->container[$offset] = $value;
        }
    }
public function offsetSet ( $ offset , $ value ) { switch ( $ this -> type ) { case GPBType :: SFIXED32 : case GPBType :: SINT32 : case GPBType :: INT32 : case GPBType :: ENUM : GPBUtil :: checkInt32 ( $ value ) ; break ; case GPBType :: FIXED32 : case GPBType :: UINT32 : GPBUtil :: checkUint32 ( $ value ) ; break ; case GPBType :: SFIXED64 : case GPBType :: SINT64 : case GPBType :: INT64 : GPBUtil :: checkInt64 ( $ value ) ; break ; case GPBType :: FIXED64 : case GPBType :: UINT64 : GPBUtil :: checkUint64 ( $ value ) ; break ; case GPBType :: FLOAT : GPBUtil :: checkFloat ( $ value ) ; break ; case GPBType :: DOUBLE : GPBUtil :: checkDouble ( $ value ) ; break ; case GPBType :: BOOL : GPBUtil :: checkBool ( $ value ) ; break ; case GPBType :: BYTES : GPBUtil :: checkString ( $ value , false ) ; break ; case GPBType :: STRING : GPBUtil :: checkString ( $ value , true ) ; break ; case GPBType :: MESSAGE : if ( is_null ( $ value ) ) { trigger_error ( "RepeatedField element cannot be null." , E_USER_ERROR ) ; } GPBUtil :: checkMessage ( $ value , $ this -> klass ) ; break ; default : break ; } if ( is_null ( $ offset ) ) { $ this -> container [ ] = $ value ; } else { $ count = count ( $ this -> container ) ; if ( ! is_numeric ( $ offset ) || $ offset < 0 || $ offset >= $ count ) { trigger_error ( "Cannot modify element at the given index" , E_USER_ERROR ) ; return ; } $ this -> container [ $ offset ] = $ value ; } }
Assign the element at the given index.

This will also be called for: $arr []= $ele and $arr[0] = ele

@param long $offset The index of the element to be assigned.
@param object $value The element to be assigned.
@return void
@throws \ErrorException Invalid type for index.
@throws \ErrorException Non-existing index.
@throws \ErrorException Incorrect type of the element.
Assign the element at the given index .