/// <summary> /// Specifies dynamic behavior for invoke operation for global function /// </summary> public bool TryInvokeMember( string memberName, Object[] args, out Object result ) { result = PhpVariable.Unwrap(PhpVariable.Dereference(Context.Call(memberName, null, null, wrapArgs(args)))); return(true); }
/// <summary> /// Specifies dynamic behavior for invoke operation for static method /// </summary> public override bool TryInvokeMember( InvokeMemberBinder binder, Object[] args, out Object result ) { Context.Stack.AddFrame(wrapArgs(args)); result = PhpVariable.Unwrap(PhpVariable.Dereference(Operators.InvokeStaticMethod(type, binder.Name, null, null, Context))); return(true); }
/// <summary> /// Specifies dynamic behavior for get operation for static variable /// </summary> public override bool TryGetMember( GetMemberBinder binder, out Object result ) { if (binder.Name == ConstID) { result = new ConstsScope(Context, type); return(true); } result = PhpVariable.Unwrap(PhpVariable.Dereference(Operators.GetStaticProperty(type, binder.Name, null, Context, false))); return(true); }
/// <summary> /// Specifies dynamic behavior for get operation for global variable /// </summary> public override bool TryGetMember( GetMemberBinder binder, out Object result ) { switch (binder.Name) { case ClassID: result = Classes; return(true); case ConstID: result = Consts; return(true); case NamespaceID: result = Namespaces; return(true); } result = PhpVariable.Unwrap(Operators.GetVariable(Context, null, binder.Name)); return(true); }