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\)).