change getType to switch from if
This commit is contained in:
parent
2ec9b2254b
commit
a57e3d659c
1 changed files with 23 additions and 22 deletions
33
src/Enum.php
33
src/Enum.php
|
|
@ -21,6 +21,7 @@ class Enum extends \yii\base\Object
|
|||
const TYPE_DATETIME = 'datetime';
|
||||
const TYPE_STRING = 'string';
|
||||
const TYPE_RESOURCE = 'resource';
|
||||
const TYPE_UNKNOWN = 'unknown';
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -47,29 +48,29 @@ class Enum extends \yii\base\Object
|
|||
*/
|
||||
public static function getType( $var )
|
||||
{
|
||||
if (is_array($var)) {
|
||||
return static::TYPE_ARRAY;
|
||||
} elseif (is_object($var)) {
|
||||
return "object";
|
||||
//return $var::className();
|
||||
} elseif (is_resource($var)) {
|
||||
return 'resource';
|
||||
} elseif (is_null($var)) {
|
||||
switch( $var ) {
|
||||
case is_null( $var ):
|
||||
return static::TYPE_NULL;
|
||||
} elseif (is_bool($var)) {
|
||||
break;
|
||||
case is_bool( $var );
|
||||
return static::TYPE_BOOL;
|
||||
} elseif (is_float($var) || (is_numeric(str_replace(',', '', $var)) && strpos($var, '.') > 0 &&
|
||||
is_float((float)str_replace(',', '', $var)))
|
||||
) {
|
||||
break;
|
||||
case is_float( $var ):
|
||||
case is_numeric( str_replace( ',', '', $var ) ) && strpos( $var, '.' ) > 0 && is_float( ( float )str_replace( ',', '', $var ) ):
|
||||
return static::TYPE_FLOAT;
|
||||
} elseif (is_int($var) || (is_numeric($var) && is_int((int)$var))) {
|
||||
break;
|
||||
case is_int( $var ) || ( is_numeric( $var ) && is_int( ( int )$var ) ):
|
||||
return static::TYPE_INT;
|
||||
} elseif (is_scalar($var) && strtotime($var) !== false) {
|
||||
break;
|
||||
case is_scalar( $var ) && strtotime( $var ) !== false:
|
||||
return static::TYPE_DATETIME;
|
||||
} elseif (is_scalar($var)) {
|
||||
break;
|
||||
case is_scalar( $var ):
|
||||
return static::TYPE_STRING;
|
||||
break;
|
||||
default:
|
||||
return static::TYPE_UNKNOWN;
|
||||
}
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue