renfordt/clamp

为PHP添加了clamp()方法的支持。

v1.0.0 2024-04-14 19:39 UTC

This package is auto-updated.

Last update: 2024-09-14 20:35:44 UTC


README

为PHP添加了数学方法clamp()的支持。

Badge Packagist Version Packagist PHP Version GitHub License GitHub Actions Workflow Status Code Climate coverage Code Climate maintainability

安装

推荐安装Larvatar的方式是使用Composer。运行以下命令将其安装到您的项目中:

composer require renfordt/clamp

用法

用法非常简单,类似于C++函数。

clamp(
    $value, // The value to be clamped
    $min, // The minimum value to clamp to
    $max // The maximum value to clamp to
);

或者您可以使用稍慢的clampMinMax()

clampMinMax(
    $value, // The value to be clamped
    $min, // The minimum value to clamp to
    $max // The maximum value to clamp to
);

为什么还需要另一个包?

尽管有一些类似的包,但这个包专注于不同的方法。

首先,其语法类似于C++的clamp函数。

其次,更重要的是,这个包专注于性能。其他包使用max($min, min($max, $num))方法,但这个包使用以下代码:

if ($value > $max) {
    return $max;
} elseif ($value < $min) {
    return $min;
}
return $value;

尽管可读性略差,但性能高达2倍。在大多数情况下这并不明显,但在某些情况下会有所帮助。

在100,000次迭代的执行中,函数需要以下时间:

字符串

  • clamp: 0.0035040378570557秒
  • clampMinMax: 0.0061681270599365秒

整数

  • clamp: 0.0029380321502686秒
  • clampMinMax: 0.0056021213531494秒

浮点数

  • clamp: 0.0028560161590576秒
  • clampMinMax: 0.0062460899353027秒