summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--ext/standard/math.c25
2 files changed, 17 insertions, 10 deletions
diff --git a/NEWS b/NEWS
index 7d8b6cfb78..bd0f0eaf7e 100644
--- a/NEWS
+++ b/NEWS
@@ -86,6 +86,8 @@ PHP NEWS
- Fixed bug #28598 (Lost support for MS Symbol fonts). (Pierre)
- Fixed bug #28220 (mb_strwidth() returns wrong width values for some hangul
characters). (Moriyoshi)
+- Fixed bug #28228 (NULL decimal separator is not being handled correctly).
+ (Ilia)
- Fixed bug #28209 (strtotime("now")). (Derick)
- Fixed bug #27798 (private / protected variables not exposed by
get_object_vars() inside class). (Marcus)
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 1ab898569b..8278f1a277 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -1136,17 +1136,22 @@ PHP_FUNCTION(number_format)
}
convert_to_double_ex(num);
convert_to_long_ex(dec);
- convert_to_string_ex(d_p);
- convert_to_string_ex(t_s);
- if (Z_STRLEN_PP(d_p)==1) {
- dec_point=Z_STRVAL_PP(d_p)[0];
- } else if (Z_STRLEN_PP(d_p)==0) {
- dec_point=0;
+
+ if (Z_TYPE_PP(d_p) != IS_NULL) {
+ convert_to_string_ex(d_p);
+ if (Z_STRLEN_PP(d_p)==1) {
+ dec_point=Z_STRVAL_PP(d_p)[0];
+ } else if (Z_STRLEN_PP(d_p)==0) {
+ dec_point=0;
+ }
}
- if (Z_STRLEN_PP(t_s)==1) {
- thousand_sep=Z_STRVAL_PP(t_s)[0];
- } else if(Z_STRLEN_PP(t_s)==0) {
- thousand_sep=0;
+ if (Z_TYPE_PP(t_s) != IS_NULL) {
+ convert_to_string_ex(t_s);
+ if (Z_STRLEN_PP(t_s)==1) {
+ thousand_sep=Z_STRVAL_PP(t_s)[0];
+ } else if(Z_STRLEN_PP(t_s)==0) {
+ thousand_sep=0;
+ }
}
RETURN_STRING(_php_math_number_format(Z_DVAL_PP(num), Z_LVAL_PP(dec), dec_point, thousand_sep), 0);
break;