-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathSlice.php
67 lines (53 loc) · 1.13 KB
/
Slice.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
/**
* Created by PhpStorm.
* User: jderay
* Date: 9/12/14
* Time: 5:24 PM
*/
namespace Giftcards\FixedWidth;
class Slice
{
protected $start;
protected $finish;
protected $width;
public static function createFromString($string)
{
$range = explode(':', $string);
if (!isset($range[1])) {
$range[1] = $range[0] + 1;
}
return new Slice($range[0], $range[1]);
}
public function __construct($start, $finish)
{
if ($finish < $start) {
throw new \RangeException(sprintf('The range %s:%s has a negative width.', $start, $finish));
}
$this->finish = $finish;
$this->start = $start;
$this->width = $finish - $start;
}
public function __toString()
{
return $this->start.':'.$this->finish;
}
/**
* @return integer
*/
public function getFinish()
{
return $this->finish;
}
/**
* @return integer
*/
public function getStart()
{
return $this->start;
}
public function getWidth()
{
return $this->width;
}
}