Exemplo n.º 1
0
 protected function resolveOp_Expr_ConstFetch(Operand $var, Op\Expr\ConstFetch $op, SplObjectStorage $resolved)
 {
     if ($op->name instanceof Operand\Literal) {
         $constant = strtolower($op->name->value);
         switch ($constant) {
             case 'true':
             case 'false':
                 return [Type::bool()];
             case 'null':
                 return [Type::null()];
             default:
                 if (isset($this->state->constants[$op->name->value])) {
                     $return = [];
                     foreach ($this->state->constants[$op->name->value] as $value) {
                         if (!$resolved->contains($value->value)) {
                             return false;
                         }
                         $return[] = $resolved[$value->value];
                     }
                     return $return;
                 }
         }
     }
     return false;
 }