Voici un autre sujet qui avait été discuté il y a quelques temps et qui est revenu en avant dernièrement, profitant certainement de l’approche de PHP 7, avec une mise à jour de la RFC au passage : Combined Comparison (Spaceship) Operator.

Cette RFC proposait d’ajouter un nouvel opérateur <=> de comparaison combinée — opérateur fréquemment appelé spaceship operator, de par sa forme. Cet opérateur, sur le modèle déjà utilisé pour des fonctions de comparaison comme strcmp(), retournerait trois valeurs :

  • 0 si les deux opérandes sont égaux,
  • 1 si l’opérande de gauche est plus grand que celui de droite
  • -1 si l’opérande de gauche est plus petit que celui de droite.

Il fonctionnerait sur tous les types de données génériques de PHP, en suivant les règles déjà en place pour <, > et ==.

Toute une série d’exemples est donnée dans la RFC, que ce soit pour des comparaison simples, des comparaisons un peu plus avancées, ou un usage avec des fonctions dépendant d’un tri utilisateur (cet opérateur simplifierait souvent l’écriture des fonctions de comparaison utilisées par ces fonctions).

Voici cependant un exemple basique :

    // Integers
    echo 1 <=> 1; // 0
    echo 1 <=> 2; // -1
    echo 2 <=> 1; // 1

Les votes ont été ouverts le 02 février 2015 pour être clôturés le 16 février 2015 et nous avons exprimé notre avis positif sur internals@.
Cette proposition a été acceptée avec 43 votes pour et 11 votes contre.