/**
         * Evaluates the expression, creating an array if the value @is unset.
         *
         * @param env the calling environment.
         *
         * @return the expression value.
         */
        public override Value evalArray(Env env)
        {
            Value array = _expr.evalArray(env);
            Value index = _index.eval(env);

            return(array.getArray(index));
        }
        /**
         * Evaluates the expression.
         *
         * @param env the calling environment.
         *
         * @return the expression value.
         */
        public override Value evalArg(Env env, bool isTop)
        {
            if (isTop)
            {
                Value obj = _expr.evalArray(env);

                return(obj.putVar());
            }
            else
            {
                // php/0d4e need to do a toValue()
                Value obj = _expr.evalArray(env).toValue();

                return(obj.getArgTail(env, isTop));
            }
        }