PHP未定义常量PHP_ROUND_HALF_DOWN

Eri*_*ric 6 php constants rounding undefined

我正在使用PHP的圆函数的项目中有一些PHP代码.在我的本地主机上,我没有在我的模式参数中包含任何引号,仅将其声明为PHP_ROUND_HALF_DOWN.但是,当推送到我的服务器时,我收到错误消息:

Use of undefined constant PHP_ROUND_HALF_DOWN - assumed 'PHP_ROUND_HALF_DOWN'
Warning (2): Wrong parameter count for round() [APP/views/helpers/time_left.php, line 14]
Run Code Online (Sandbox Code Playgroud)

现在,当我将单引号添加到mode参数时,第一个错误消失,但"错误的参数计数"仍然存在.我正在调用函数如下:

$days = round(($difference/$day), 0, PHP_ROUND_HALF_DOWN);
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

Mar*_*ker 11

mode参数仅在PHP 5.3.0中添加.如果您运行的是早期版本的PHP,则不会定义模式选项常量(PHP_ROUND_HALF_UP,PHP_ROUND_HALF_DOWN,PHP_ROUND_HALF_EVEN和PHP_ROUND_HALF_ODD)

编辑

你不能在5.3.0之前使用round()的mode参数,但你可以通过组合函数来实现等价:

round(floor($value * 100) / 100,2); //  to round down to 2dp
round(floor($value * 1000) / 1000,3); //  to round down to 3dp
round(ceil($value * 100) / 100,2); //  to round up to 2dp
Run Code Online (Sandbox Code Playgroud)


Tim*_*per 9

舍入模式中PHP 5.3中的溶液.确保您至少运行该版本.

您可以通过将以下内容放在PHP文件中来查看正在运行的版本:

var_dump(phpversion());
Run Code Online (Sandbox Code Playgroud)


Mar*_*lln 5

PHP_ROUND_HALF_DOWN需要PHP 5.3.0,如下所示:http://php.net/manual/en/math.constants.php

你可能是一个较低的PHP版本.