はじめに
二項演算子とも言うけど、そんな退屈な名前で呼びたくない。
なんてったって、"宇宙船演算子"の方が響きがかっこいい!笑
ふるまい
<?php
function spaceShipOperatorTest($param1, $param2) {
// <=> が宇宙船演算子!
return ($param1 <=> $param2) . PHP_EOL;
}
echo spaceShipOperatorTest(NULL, NULL); // 0
echo spaceShipOperatorTest('', ''); // 0
echo spaceShipOperatorTest(1, 1); // 0
echo spaceShipOperatorTest(1, 0); // 1
echo spaceShipOperatorTest(0, 1); // -1
echo spaceShipOperatorTest(0, 0); // 0
echo spaceShipOperatorTest(1, 1.0); // 0
echo spaceShipOperatorTest(1.0, 1); // 0
echo spaceShipOperatorTest(1.1, 1); // 1
echo spaceShipOperatorTest(TRUE, TRUE); // 0
echo spaceShipOperatorTest(TRUE, FALSE); // 1
echo spaceShipOperatorTest(FALSE, TRUE); // -1
echo spaceShipOperatorTest(FALSE, FALSE); // 0
要は、A <=> B の場合
- Aの方が大きければ、1
- Bの方が大きければ、-1
- 同じであれば、0
を返す。
Javaで言うcompareToのシンプル版みたいなものですね。