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: *
33: * このインタフェースは, {@link Arrays} のソート・大小比較関連の API で使用されます.
34: * Java における
35: * {@link http://docs.oracle.com/javase/jp/7/api/java/lang/Comparable.html java.lang.Comparable}
36: * と同じ用途で使われることを想定しています.
37: */
38: interface Comparable
39: {
40: /**
41: * このオブジェクトと引数の値を比較します.
42: *
43: * このオブジェクトが $subject より小さい場合は負の整数,
44: * このオブジェクトが $subject より大きい場合は正の整数,
45: * このオブジェクトと $subject が等しい場合は 0 を返します.
46: *
47: * もしも このオブジェクトが $subject と比較できない場合は
48: * NULL を返すか, または任意の例外をスローします.
49: *
50: * @param mixed $subject 比較対象の値
51: * @return int 比較結果をあらわす整数
52: */
53: public function compareTo($subject);
54: }
55: