Improvements to default value binder

This commit is contained in:
MarkBaker 2019-07-25 23:25:02 +02:00 committed by Adrien Crivelli
parent b894b98a2c
commit a691516664
1 changed files with 5 additions and 5 deletions

View File

@ -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] !== '.') {