clouding / range
用于范围对象的简单库。
v1.1.1
2019-01-11 07:55 UTC
Requires
- php: ^7.1.3
Requires (Dev)
- mockery/mockery: ^1.2
- phpstan/phpstan: ^0.10.7
- phpstan/phpstan-mockery: ^0.10.2
- phpunit/phpunit: ^7.5
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-11 20:42:14 UTC
README
用于 范围 对象的简单库。
目录
安装
composer require clouding/range
使用
创建
创建新实例
use Clouding\Range\Range; $range = new Range(1, 10);
从字符串创建实例
$range = Range::parse('1..10');
获取器
获取起始或结束值
echo $range->start; // 1 echo $range->end; // 10
比较
确定是否包含整数
$range = new Range(1, 10); var_dump($range->contains(5)); // bool(true)
确定两个范围实例是否相等
$range = new Range(1, 10); $rangeFoo = new Range(1, 10); var_dump($range->equals($rangeFoo)); // bool(true)
确定两个范围实例是否相交
$range = new Range(1, 10); $rangeBar = new Range(5, 10); var_dump($range->intersect($rangeBar)); // bool(true)
转换
获取实例作为字符串
$range = Range::parse('-5..5'); echo $range; // -5..5 echo $range->toString() // -5..5
获取实例作为数组
$range = new Range(1, 5); var_dump($range->toArray()); // [1, 2, 3, 4, 5] // with gap 2 var_dump($range->toArray(2)); // [1, 3, 5]
格式化字符串
echo $range->format(':start ~ :end'); // 1 ~ 10 echo $range->format('From :start to :end'); // From 1 to 10
函数
对范围中的每个整数执行回调
$range = new Range(1, 5); $range->each(function ($int) { echo $int, ', '; }); // 1, 2, 3, 4, 5, $range->each(function ($int) { if ($int >= 3) { return false; } echo $int . ', '; }); // 1, 2, // with gap 2 $range->each(function($int) { echo $int . ', '; }, 2); // 1, 3, 5,
获取范围内的随机整数
$range = new Range(1, 10); echo $range->random(); // 3 var_dump($range->random(3)); // [3, 2, 9]