PHP 7 und der Spaceship Operator

Neben neuen Features wie dem Type Hinting für skalare Datentypen oder der optimierten Performance bringt PHP 7 auch viele neue, nützliche Spracherweiterungen mit sich. Dabei hat es nun auch endlich der "Spaceship Operator" in die Welt von PHP geschafft (Ruby- und Perl-Programmierer kennen den ja schon lange). \($a <=> $b\) gibt genau dann \(0\) zurück, wenn beide Operanden gleich sind, \(1\), wenn der linke größer ist und sonst \(-1\).


Demnach entspricht dieser neue Operator der aus der Mathematik bekannten Signumfunktion \(sgn(x-y)\). Dadurch können auch bereits existierende Vergleichsoperatoren mit Hilfe der neuen Syntax interpretiert werden:

\($a < $b\) \(($a <=> $b) === -1\)
\($a <= $b\) \(($a <=> $b)\) !\(== 1\)
\($a == $b\) \(($a <=> $b) === 0\)
\($a\) !\(= $b\) \(($a <=> $b)\) !\(== 0\)
\($a >= $b\) \(($a <=> $b)\) !\(== -1\)
\($a > $b\) \(($a <=> $b) === 1\)

Damit gelten dieselben Regeln wie für die Vergleichsoperatoren (so ist z.B. \([1,2,3] <=>[1,2,1]\) gleich \(1\)).

Zurück