宇宙船演算子

概要

PHP7.0以降から使える

<=>

こういうものである。

左辺が右辺より小さいと、-1を返し、
左辺が右辺より大きいと、1を返す。
両方が同じ値だと、0を返す。

いずれも数値を返す。

文字列を比較する事も可能なようだが、
あくまでも文字数を比較した結果が返ってくるわけではないため、要注意。
文字数を比較したい場合、mb_strlen()などで、文字数を数値化する必要がある。

※mb_strlem():全角も1文字と数える。

使用例

<?php

$a = 6;
$b = 4;

$c = $a <=> $b;

echo $c;

この場合、左辺となる$aの値が大きいため、1を出力する事になる。

$a <=> $b自体が、-101の、いずれかの値を返している。

ちなみにこの演算子を使った計算式を、そのままif文に入れると、
PHPの場合、数値の0falseと同じような意味なので、
同じ値の場合、elseに処理が流れる点は注意しておこう。

余談

なぜこれが、宇宙船演算子と言われているかと言うと、
やはり、宇宙船に見えるからだろう。

正面から見たTIEインターセプターだと思えばいいかもしれない。

※TIEインターセプター:スター・ウォーズに登場する、帝国軍の戦闘機。
ダース・ベイダー専用機であるTIEアドヴァンストX1を基に、
コストダウンを行い、量産された戦闘機。TIEファイターよりも火力と速度に優れる。