Page MenuHomeIn-Portal Phabricator

D287.id776.diff
No OneTemporary

File Metadata

Created
Wed, Feb 26, 9:05 AM

D287.id776.diff

Index: branches/5.2.x/core/kernel/utility/formatters/formatter.php
===================================================================
--- branches/5.2.x/core/kernel/utility/formatters/formatter.php
+++ branches/5.2.x/core/kernel/utility/formatters/formatter.php
@@ -63,8 +63,6 @@
*/
function TypeCast($value, $options)
{
- $ret = true;
-
if ( isset($options['type']) ) {
$field_type = $options['type'];
@@ -81,20 +79,18 @@
}
$value = $this->formatNumber($value);
- $type_ok = preg_match('#int|integer|double|float|real|numeric|string#', $field_type);
+ $is_numeric_type = preg_match('#int|integer|double|float|real#', $field_type);
- if ( $value != '' && $type_ok ) {
- $ret = is_numeric($value);
+ if ( $value != '' && $is_numeric_type ) {
+ $tc_value = $value;
+ settype($tc_value, $field_type);
- if ($ret) {
- $f = 'is_' . $field_type;
- settype($value, $field_type);
- $ret = $f($value);
- }
+ // Type casing is considered a success only, when type casted value visually looks the same.
+ return (string)$value === (string)$tc_value ? $tc_value : false;
}
}
- return $ret ? $value : false;
+ return $value;
}
/**

Event Timeline