예제 #1
0
 public static function classOfValue($value)
 {
     $className = '';
     $type = gettype($value);
     if ($type == 'boolean') {
         $className = 'boolean';
     } else {
         if ($type == 'integer') {
             $className = 'int';
         } else {
             if ($type == 'double') {
                 $className = 'double';
             } else {
                 if ($type == 'string') {
                     $className = 'String';
                 } else {
                     if ($type == 'array') {
                         return ArrayType::autoClass($value);
                     } else {
                         if ($type == 'object') {
                             if ($value instanceof Magic) {
                                 return new MagicClazz(get_class($value), $value);
                             } else {
                                 $className = get_class($value);
                             }
                         } else {
                             if ($type == 'resource') {
                                 throw new ClassNotFoundException('Resource have no class');
                             } else {
                                 if ($type == 'NULL') {
                                     $className = 'Void';
                                 } else {
                                     throw new ClassNotFoundException('Type of value is unknown');
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return self::classOf($className);
 }