1 29 30 package com.caucho.quercus.expr; 31 32 import com.caucho.quercus.Location; 33 import com.caucho.quercus.env.BooleanValue; 34 import com.caucho.quercus.env.Env; 35 import com.caucho.quercus.env.UnsetValue; 36 import com.caucho.quercus.env.Value; 37 38 41 public class ArrayIsSetExpr extends Expr { 42 protected final Expr _expr; 43 protected final Expr _index; 44 45 public ArrayIsSetExpr(Location location, Expr expr, Expr index) 46 { 47 super(location); 48 _expr = expr; 49 _index = index; 50 } 51 52 public ArrayIsSetExpr(Expr expr, Expr index) 53 { 54 _expr = expr; 55 _index = index; 56 } 57 58 public boolean isBoolean() 59 { 60 return true; 61 } 62 63 70 public Value eval(Env env) 71 { 72 return evalBoolean(env) ? BooleanValue.TRUE : BooleanValue.FALSE; 73 } 74 75 82 public boolean evalBoolean(Env env) 83 { 84 Value array = _expr.evalArg(env); 85 Value index = _index.eval(env); 86 87 return array.get(index) != UnsetValue.UNSET; 88 } 89 90 public String toString() 91 { 92 return "isset(" + _expr + "[" + _index + "])"; 93 } 94 } 95 96 | Popular Tags |