renfordt / clamp
为PHP添加了clamp()方法的支持。
v1.0.0
2024-04-14 19:39 UTC
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^10.5
README
为PHP添加了数学方法clamp()的支持。
安装
推荐安装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秒