change getType to switch from if
This commit is contained in:
parent
2ec9b2254b
commit
a57e3d659c
1 changed files with 23 additions and 22 deletions
45
src/Enum.php
45
src/Enum.php
|
|
@ -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';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue