Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Résultats inversés du vaisseau spatial

<?php

class A {
    public string $a;
    public string $b;
    public function __construct(
        string $a,
        string $b,
    ){
        $this->a = $a;
        $this->b = $b;
    }
}

$a = new A('b', 'a');
$b = new A('a', 'b');

var_dump($a <=> $b);  // 1
var_dump($b <=> $a);  // -1

class B {
    public string $b;  // The property declarations are inverted
    public string $a;
    public function __construct(
        string $a,
        string $b,
    ){
        $this->a = $a;
        $this->b = $b;
    }
}

$a = new B('b', 'a');
$b = new B('a', 'b');

var_dump($a <=> $b);  // -1
var_dump($b <=> $a);  // 1

Dans la première classe, les propriétés sont déclarées $a, puis $b. La comparaison des valeurs avec le vaisseau spatial donne 1, -1.

Dans la première classe, les propriétés sont déclarées $b, puis $a. Le reste du code est identique. La comparaison des valeurs avec le vaisseau spatial donne -1, 1.

Ce phénomène disparaît lorsqu’on utilise des propriétés promues.

See Also

PHP Features

Last updated: 11 October 2026