Improvements to default value binder
This commit is contained in:
parent
b894b98a2c
commit
a691516664
|
@ -51,16 +51,16 @@ class DefaultValueBinder implements IValueBinder
|
||||||
// Match the value against a few data types
|
// Match the value against a few data types
|
||||||
if ($pValue === null) {
|
if ($pValue === null) {
|
||||||
return DataType::TYPE_NULL;
|
return DataType::TYPE_NULL;
|
||||||
|
} elseif (is_float($pValue) || is_int($pValue)) {
|
||||||
|
return DataType::TYPE_NUMERIC;
|
||||||
|
} elseif (is_bool($pValue)) {
|
||||||
|
return DataType::TYPE_BOOL;
|
||||||
} elseif ($pValue === '') {
|
} elseif ($pValue === '') {
|
||||||
return DataType::TYPE_STRING;
|
return DataType::TYPE_STRING;
|
||||||
} elseif ($pValue instanceof RichText) {
|
} elseif ($pValue instanceof RichText) {
|
||||||
return DataType::TYPE_INLINE;
|
return DataType::TYPE_INLINE;
|
||||||
} elseif ($pValue[0] === '=' && strlen($pValue) > 1) {
|
} elseif (is_string($pValue) && $pValue[0] === '=' && strlen($pValue) > 1) {
|
||||||
return DataType::TYPE_FORMULA;
|
return DataType::TYPE_FORMULA;
|
||||||
} elseif (is_bool($pValue)) {
|
|
||||||
return DataType::TYPE_BOOL;
|
|
||||||
} elseif (is_float($pValue) || is_int($pValue)) {
|
|
||||||
return DataType::TYPE_NUMERIC;
|
|
||||||
} elseif (preg_match('/^[\+\-]?(\d+\\.?\d*|\d*\\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) {
|
} elseif (preg_match('/^[\+\-]?(\d+\\.?\d*|\d*\\.?\d+)([Ee][\-\+]?[0-2]?\d{1,3})?$/', $pValue)) {
|
||||||
$tValue = ltrim($pValue, '+-');
|
$tValue = ltrim($pValue, '+-');
|
||||||
if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {
|
if (is_string($pValue) && $tValue[0] === '0' && strlen($tValue) > 1 && $tValue[1] !== '.') {
|
||||||
|
|
Loading…
Reference in New Issue