change getType to switch from if

This commit is contained in:
Ade Attwood 2017-06-23 22:39:28 +01:00
parent 2ec9b2254b
commit a57e3d659c

View file

@ -21,6 +21,7 @@ class Enum extends \yii\base\Object
const TYPE_DATETIME = 'datetime'; const TYPE_DATETIME = 'datetime';
const TYPE_STRING = 'string'; const TYPE_STRING = 'string';
const TYPE_RESOURCE = 'resource'; const TYPE_RESOURCE = 'resource';
const TYPE_UNKNOWN = 'unknown';
/** /**
* *
@ -47,29 +48,29 @@ class Enum extends \yii\base\Object
*/ */
public static function getType( $var ) public static function getType( $var )
{ {
if (is_array($var)) { switch( $var ) {
return static::TYPE_ARRAY; case is_null( $var ):
} elseif (is_object($var)) { return static::TYPE_NULL;
return "object"; break;
//return $var::className(); case is_bool( $var );
} elseif (is_resource($var)) { return static::TYPE_BOOL;
return 'resource'; break;
} elseif (is_null($var)) { case is_float( $var ):
return static::TYPE_NULL; case is_numeric( str_replace( ',', '', $var ) ) && strpos( $var, '.' ) > 0 && is_float( ( float )str_replace( ',', '', $var ) ):
} elseif (is_bool($var)) { return static::TYPE_FLOAT;
return static::TYPE_BOOL; break;
} elseif (is_float($var) || (is_numeric(str_replace(',', '', $var)) && strpos($var, '.') > 0 && case is_int( $var ) || ( is_numeric( $var ) && is_int( ( int )$var ) ):
is_float((float)str_replace(',', '', $var))) return static::TYPE_INT;
) { break;
return static::TYPE_FLOAT; case is_scalar( $var ) && strtotime( $var ) !== false:
} elseif (is_int($var) || (is_numeric($var) && is_int((int)$var))) { return static::TYPE_DATETIME;
return static::TYPE_INT; break;
} elseif (is_scalar($var) && strtotime($var) !== false) { case is_scalar( $var ):
return static::TYPE_DATETIME; return static::TYPE_STRING;
} elseif (is_scalar($var)) { break;
return static::TYPE_STRING; default:
return static::TYPE_UNKNOWN;
} }
return 'unknown';
} }
/** /**