Beispiel #1
0
 static function typeof($v)
 {
     if ($v === null) {
         return ValueType::$TNull;
     }
     if (is_array($v)) {
         if (is_callable($v)) {
             return ValueType::$TFunction;
         }
         return ValueType::TClass(_hx_qtype("Array"));
     }
     if (is_string($v)) {
         if (_hx_is_lambda($v)) {
             return ValueType::$TFunction;
         }
         return ValueType::TClass(_hx_qtype("String"));
     }
     if (is_bool($v)) {
         return ValueType::$TBool;
     }
     if (is_int($v)) {
         return ValueType::$TInt;
     }
     if (is_float($v)) {
         return ValueType::$TFloat;
     }
     if ($v instanceof _hx_anonymous) {
         return ValueType::$TObject;
     }
     if ($v instanceof _hx_enum) {
         return ValueType::$TObject;
     }
     if ($v instanceof _hx_class) {
         return ValueType::$TObject;
     }
     $c = _hx_ttype(get_class($v));
     if ($c instanceof _hx_enum) {
         return ValueType::TEnum($c);
     }
     if ($c instanceof _hx_class) {
         return ValueType::TClass($c);
     }
     return ValueType::$TUnknown;
 }