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_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';
}
/**