1 29 30 package com.caucho.quercus.expr; 31 32 import com.caucho.quercus.Location; 33 import com.caucho.quercus.env.Env; 34 import com.caucho.quercus.env.Value; 35 import com.caucho.util.L10N; 36 37 40 public class StaticFieldGetExpr extends AbstractVarExpr { 41 private static final L10N L = new L10N(StaticFieldGetExpr.class); 42 43 protected final String _className; 44 protected final String _varName; 45 protected final String _envName; 46 47 public StaticFieldGetExpr(Location location, String className, String varName) 48 { 49 super(location); 50 _className = className; 51 52 _varName = varName; 53 54 _envName = className + "::" + varName; 55 } 56 57 public StaticFieldGetExpr(String className, String varName) 58 { 59 _className = className; 60 61 _varName = varName; 62 63 _envName = className + "::" + varName; 64 } 65 66 73 public Value eval(Env env) 74 { 75 return env.getGlobalValue(_envName); 76 } 77 78 85 public Value evalArg(Env env) 86 { 87 return env.getGlobalRef(_envName); 88 } 89 90 97 public Value evalRef(Env env) 98 { 99 return env.getGlobalVar(_envName); 100 } 101 102 109 public void evalAssign(Env env, Value value) 110 { 111 env.setGlobalValue(_envName, value); 112 } 113 114 121 public void evalUnset(Env env) 122 { 123 } 125 126 public String toString() 127 { 128 return _className + "::$" + _varName; 129 } 130 } 131 132 | Popular Tags |