summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/basic_functions.c1
-rw-r--r--ext/standard/math.c15
-rw-r--r--ext/standard/php_math.h1
3 files changed, 17 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 49cc891dbb..12ce0f6e1a 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -475,6 +475,7 @@ function_entry basic_functions[] = {
PHP_FE(dechex, NULL)
PHP_FE(base_convert, NULL)
PHP_FE(number_format, NULL)
+ PHP_FE(fmod, NULL)
PHP_FE(ip2long, NULL)
PHP_FE(long2ip, NULL)
diff --git a/ext/standard/math.c b/ext/standard/math.c
index d594a5a21e..fea4be5f3b 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -1046,6 +1046,21 @@ PHP_FUNCTION(number_format)
}
/* }}} */
+/* {{{ proto double fmod(double x, double y)
+ Returns the remainder of dividing x by y as a double */
+PHP_FUNCTION(fmod)
+{
+ double num1, num2;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "dd", &num1, &num2) == FAILURE) {
+ return;
+ }
+
+ Z_DVAL_P(return_value) = fmod(num1, num2);
+ Z_TYPE_P(return_value) = IS_DOUBLE;
+}
+/* }}} */
+
/*
* Local variables:
* tab-width: 4
diff --git a/ext/standard/php_math.h b/ext/standard/php_math.h
index 496ccf1b80..ceb6a0b09e 100644
--- a/ext/standard/php_math.h
+++ b/ext/standard/php_math.h
@@ -58,6 +58,7 @@ PHP_FUNCTION(hexdec);
PHP_FUNCTION(octdec);
PHP_FUNCTION(base_convert);
PHP_FUNCTION(number_format);
+PHP_FUNCTION(fmod);
PHP_FUNCTION(deg2rad);
PHP_FUNCTION(rad2deg);