1: <?php
2: /*
3: * Copyright (c) 2014 @trashtoy
4: * https://github.com/trashtoy/
5: *
6: * Permission is hereby granted, free of charge, to any person obtaining a copy of
7: * this software and associated documentation files (the "Software"), to deal in
8: * the Software without restriction, including without limitation the rights to use,
9: * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
10: * Software, and to permit persons to whom the Software is furnished to do so,
11: * subject to the following conditions:
12: *
13: * The above copyright notice and this permission notice shall be included in all
14: * copies or substantial portions of the Software.
15: *
16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18: * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19: * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20: * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21: * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22: */
23: /**
24: * PHP class file.
25: * @auhtor trashtoy
26: * @since 2.0.0
27: */
28: namespace Peach\Util;
29:
30: /**
31: * 与えられた二つの値を比較するインタフェースです.
32: * このインタフェースは {@link Arrays::sort} の引数として使われます.
33: * Java における
34: * {@link http://docs.oracle.com/javase/jp/7/api/java/util/Comparator.html java.util.Comparator}
35: * と同じ用途で使われることを想定しています.
36: */
37: interface Comparator
38: {
39: /**
40: * 二つの値を比較します.
41: *
42: * $var1 が $var2 より小さい場合は負の整数,
43: * $var1 が $var2 より大きい場合は正の整数,
44: * $var1 と $var2 が等しい場合は 0 を返します.
45: *
46: * もし $var1 と $var2 が比較できない場合は NULL を返すか,
47: * 任意の例外をスローします.
48: *
49: * @param mixed $var1 比較対象の値
50: * @param mixed $var2 比較対象の値
51: * @return int 比較した結果,
52: * $var1 > $var1 の場合は正,
53: * $var2 > $var1 の場合は負,
54: * $var1 == $var2 の場合は 0
55: */
56: public function compare($var1, $var2);
57: }
58: