PHP

<=> spaceship operator, czyli operator porównania trójstronnego w PHP, inaczej zwany operatorem połączonego porównania (combined comparison)

Spaceship
(Spaceship : envato, autor Rawpixel)

Operator spaceship  dostępny jest od PHP7,  przyjmuje dwa wyrażenia, lewe oraz prawe i pozwala określić, które wyrażenie jest większe, mniejsze, lub czy oba wyrażenia są równe. 

Operator Spaceship to typowy operator porównania trójstronnego, zwraca 0, jeśli oba operandy są równe, zwraca 1, jeśli lewe wyrażenie jest większe i zwraca -1, jeśli prawe wyrażenie jest większe. Operator <=> głównie, ale znacząco uprasza zapisy funkcji sortujących, które przyjmuje funkcja usort() oraz jej pochodne.

Wartości zwracane przez operator <=>

Pomocne dla zrozumienia działania operator porównania trójstronnego będą poniższe przykłady z wynikami porównań.

// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
 
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
 
echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1
 
// Arrays
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
 
// Objects
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 0
 
$a = (object) ["a" => "b"]; 
$b = (object) ["a" => "c"]; 
echo $a <=> $b; // -1
 
$a = (object) ["a" => "c"]; 
$b = (object) ["a" => "b"]; 
echo $a <=> $b; // 1
 
$a = (object) ["a" => "b"]; 
$b = (object) ["b" => "b"]; 
echo $a <=> $b; // 0

Operator połączonego porównania

Mając powyższe, przykłady powinieneś łatwo zrozumieć, że operator spaceship łączy kilka operatorów i uprasza nasz kod. <=> zawiera w sobie: ==, <, <=, >= oraz >. Jak bardzo upraszcza pisany kod oraz jego późniejsze rozumienie pokażę na przykładzie funkcji sortującej usort().


Czy ten artykuł był Ci pomocny? Jesteśmy doświadczoną agencją SEO, skontakuj się z nami, jeśli potrzebujesz pomocy ze swoją stroną.

Spotkajmy się też w moich social media :
Zobacz moje wszystkie artykuły
Zaufali nam:
ElbudBis
Instytu cyfrowego obywatelstwa
Kinesso
Fundacja Orange
Rodzice.pl

Współpracuj z nami!

Naszą mocą jest technologia i doświadczony zespół

Przez lata zdobywaliśmy doświadczenie u największych wydawców w Polsce, a teraz zadbamy o rozwój Twojej firmy od strategii wzrostu po wdrożenia na stronach dzięki naszemu własnemu software house'owi. Zaufaj nam, aby osiągać dobre wyniki.

Porozmawiajmy o Twoich celach i potrzebach!

Przejrzyj najnowsze artykuły i wpisy na naszym blogu