flare / math
Requires
- php: >=5.3.0
- illuminate/support: 4.1.x
This package is not auto-updated.
Last update: 2024-09-24 05:31:29 UTC
README
为 Laravel 4 开发的数学包。
安装
在 Laravel 4 中安装 math
最简单的方法是使用 Composer。将以下内容添加到您的 composer.json
文件中
"flare/math": "*"
添加后,运行 composer update
命令,以下载数学包并将其放置在您的 vendor 文件夹中。
注册服务提供者
使用 Composer 下载数学包后,将以下内容添加到您的 app.php
配置文件中的 providers 数组
'Flare\Math\MathServiceProvider',
注册外观(可选)
要注册数学包的外观,请将以下条目添加到您的 app.php
配置文件中的 aliases
'Math' => 'Flare\Math\Facades\Math',
完成此操作后,您应该已经准备好开始使用!祝您享受!
用法
安装并注册服务提供者后,您可以通过引用 Math
外观来使用数学库
// app/routes.php
Route::get('/', function()
{
// Calculate the absolute value of -1
$result = Math::abs(-1);
});
Math::solve()
函数
数学包通过 Math
外观提供了一个 solve()
函数。此函数可用于解决用户输入的方程或表达式。
示例
// app/routes.php
Route::get('/', function()
{
// Create a new function f(x) = 2 + x
Math::solve('f(x) = 2 + x');
// Reference our previous function and pass in 23.
$result = Math::solve('f(23)');
// Result is equal to 25.
echo $result;
});
我们还可以使用以下列出的所有通用数学函数
// app/routes.php
Route::get('/', function()
{
// Outputs 9.3326215443944E+157
echo Math::solve('abs(factorial(100))');
});
通用数学函数
数学包目前提供了以下函数,来自 ExecutionEngineInterface
,并通过 Math
外观通过 Math 对象访问。
abs($number)
- 返回一个数的绝对值。acos($number)
- 返回一个数的反余弦。asin($number)
- 返回一个数的反正弦。atan($number)
- 返回一个数的反正切。atan2($x, $y)
- 计算两个变量的反正切。ceiling($number)
- 返回大于或等于指定数值的最小整数。cos($angle)
- 返回指定角度的余弦值。cosh($angle)
- 返回角度的双曲余弦。exp($number)
- 返回 e 的指定幂。floor($number)
- 返回小于或等于指定数值的最大整数。log($number, $base = M_E)
- 返回指定底数的数值的对数。log10($number)
- 返回数值的 10 为底的对数。max(array $numbers)
- 返回数值数组中的最大值。min(array $numbers)
- 返回数值数组中的最小值。pow($base, $exponent)
- 返回基数指数。round($number, $precision = 0, $mode = PHP_ROUND_HALF_UP)
- 将数值四舍五入到最接近的值。sign($number)
- 返回表示数值符号的值。sin($angle)
- 返回指定角度的正弦值。sinh($angle)
- 返回角度的双曲正弦。sqrt($number)
- 返回给定数的平方根。tan($angle)
- 返回指定角度的正切。tanh($angle)
- 返回角度的双曲正切。truncate($number)
- 返回给定数的整数部分。add($numberOne, $numberTwo)
- 返回两个数的和。subtract($numberOne, $numberTwo)
- 返回两个数的差。multiply($numberOne, $numberTwo)
- 返回两个数的乘积。divide($numberOne, $numberTwo)
- 返回两个数的商。mod($numberOne, $numberTwo)
- 返回两个数的余数。factorial($number)
- 计算一个数的阶乘。
驱动程序
ExecutionEngineInterface
数学包允许你编写自己的驱动程序,以改变其执行实际数学操作的方式。例如,你可以使用 BCMath
或 GMP
数学扩展中的函数创建一个新的驱动程序。只需创建一个实现 Flare\Math\ExecutionEngineInterface
协议的新驱动程序。
存在一个默认的驱动程序,它使用系统默认的数学操作:Flare\Math\Drivers\MathExecutionEngine
如果你创建了一个新的驱动程序,你可以像这样将其注册到 IoC 中
class MyNewEngine implements \Flare\Math\ExecutionEngineInterface {
// You will have to implement quite a few methods.
}
// app/routes.php
App::bind('ExecutionEngineInterface', new MyNewEngine());
之后,数学包将现在使用你的驱动程序实现。
SolutionEngineInterface
数学包定义了一个代码协议 Flare\Math\SolutionEngineInterface
。你的实现将允许你改变 Math::solve($expression)
函数的行为。
例如,你可以编写一个驱动程序,通过调用 WolframAlpha API 为用户输入的表达式提供答案。
存在一个默认实现,可以在 Flare\Math\Drivers\EvalMathDriver
中找到。