PHP - Operator Kapal Angkasa

Hai sana, para pemrogram yang sedang mencari ilmu! Hari ini, kita akan melangsungkan sebuah perjalanan yang menarik ke dunia PHP dan menjelajahi operator kecil yang menarik yang disebut Operator Kapal Angkasa. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda dalam petualangan ini, dan pada akhirnya, Anda akan mengendarai kapal angkasa ini seperti seorang pro!

PHP - Spaceship Operator

Apa Itu Operator Kapal Angkasa?

Sebelum kita masuk ke hal yang lebih rinci, mari bicarakan apa sebenarnya Operator Kapal Angkasa ini. Dalam PHP, Operator Kapal Angkasa ditunjukkan oleh <=>. Ya, itu terlihat seperti kapal angkasa kecil, sehingga dinamai demikian! Itu adalah operator perbandingan yang diperkenalkan dalam PHP 7.0 untuk membuat hidup kita sebagai pemrogram menjadi sedikit lebih mudah.

Pikirkanlah itu sebagai cara yang super efisien untuk membandingkan dua nilai. Itu seperti memiliki komputer mini di dalam kode Anda yang dapat dengan cepat mengatakan kepada Anda jika satu nilai kurang dari, sama dengan, atau lebih besar dari nilai lain. Keren, kan?

Sintaks

Sintaks Operator Kapal Angkasa cukup mudah:

$result = $a <=> $b;

Ini apa yang dilakukannya:

  • Jika $a kurang dari $b, itu mengembalikan -1
  • Jika $a sama dengan $b, itu mengembalikan 0
  • Jika $a lebih besar dari $b, itu mengembalikan 1

Itu seperti memiliki robot kecil yang melihat dua nilai dan memberikan Anda penjelasan cepat tentang bagaimana mereka dibandingkan. Sekarang, mari kita lihat operator ini dalam aksi dengan beberapa contoh!

Contoh 1: Membandingkan Angka

Mulai dengan sesuatu yang sederhana - membandingkan angka.

<?php
$result1 = 5 <=> 10;
echo "5 <=> 10 = $result1\n";

$result2 = 10 <=> 5;
echo "10 <=> 5 = $result2\n";

$result3 = 5 <=> 5;
echo "5 <=> 5 = $result3\n";
?>

Output:

5 <=> 10 = -1
10 <=> 5 = 1
5 <=> 5 = 0

Dalam contoh ini, kita membandingkan angka yang berbeda:

  1. 5 kurang dari 10, jadi itu mengembalikan -1
  2. 10 lebih besar dari 5, jadi itu mengembalikan 1
  3. 5 sama dengan 5, jadi itu mengembalikan 0

Lihatlah seberapa cepat kita dapat menentukan hubungan antara angka-angka ini? Itu seperti memiliki ahli matematika mini di dalam kode kita!

Contoh 2: Membandingkan String

Operator Kapal Angkasa tidak hanya untuk angka - itu juga bekerja dengan string!

<?php
$result1 = "apple" <=> "banana";
echo "'apple' <=> 'banana' = $result1\n";

$result2 = "zebra" <=> "aardvark";
echo "'zebra' <=> 'aardvark' = $result2\n";

$result3 = "hello" <=> "hello";
echo "'hello' <=> 'hello' = $result3\n";
?>

Output:

'apple' <=> 'banana' = -1
'zebra' <=> 'aardvark' = 1
'hello' <=> 'hello' = 0

Berikut apa yang terjadi:

  1. "apple" berada sebelum "banana" secara alfabetik, jadi itu mengembalikan -1
  2. "zebra" berada setelah "aardvark" secara alfabetik, jadi itu mengembalikan 1
  3. "hello" sama dengan "hello", jadi itu mengembalikan 0

Itu seperti memiliki perpustakaan yang dapat segera mengatakan kepada Anda bagaimana mengurutkan buku Anda!

Contoh 3: Membandingkan Array

Sekarang, mari kita naik tingkat dan gunakan Operator Kapal Angkasa dengan array. Ini di mana hal-hal menjadi sangat menarik!

<?php
$array1 = [1, 2, 3];
$array2 = [1, 2, 4];
$array3 = [1, 2, 3];

$result1 = $array1 <=> $array2;
echo "[1, 2, 3] <=> [1, 2, 4] = $result1\n";

$result2 = $array2 <=> $array1;
echo "[1, 2, 4] <=> [1, 2, 3] = $result2\n";

$result3 = $array1 <=> $array3;
echo "[1, 2, 3] <=> [1, 2, 3] = $result3\n";
?>

Output:

[1, 2, 3] <=> [1, 2, 4] = -1
[1, 2, 4] <=> [1, 2, 3] = 1
[1, 2, 3] <=> [1, 2, 3] = 0

Berikut apa yang terjadi:

  1. [1, 2, 3] dianggap kurang dari [1, 2, 4] karena dua elemen pertama sama, tetapi elemen ketiga array pertama (3) kurang dari elemen ketiga array kedua (4).
  2. [1, 2, 4] dianggap lebih besar dari [1, 2, 3] karena alasan yang sama, tapi sebaliknya.
  3. [1, 2, 3] sama dengan [1, 2, 3] karena semua elemen sama.

Itu seperti memiliki mesin perbandingan array yang super efisien!

Contoh 4: Pengurutan dengan Operator Kapal Angkasa

Salah satu penggunaan yang paling menarik dari Operator Kapal Angkasa adalah dalam pengurutan. Mari lihat bagaimana kita dapat menggunakan itu untuk mengurutkan array angka.

<?php
$numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];

usort($numbers, function($a, $b) {
return $a <=> $b;
});

echo "Angka yang diurutkan: " . implode(', ', $numbers) . "\n";

usort($numbers, function($a, $b) {
return $b <=> $a;
});

echo "Angka yang diurutkan secara terbalik: " . implode(', ', $numbers) . "\n";
?>

Output:

Angka yang diurutkan: 1, 1, 2, 3, 3, 4, 5, 5, 6, 9
Angka yang diurutkan secara terbalik: 9, 6, 5, 5, 4, 3, 3, 2, 1, 1

Dalam contoh ini, kita menggunakan fungsi usort bersamaan dengan Operator Kapal Angkasa untuk mengurutkan array. Fungsi usort menggunakan fungsi perbandingan untuk menentukan urutan elemen. Dengan menggunakan $a <=> $b, kita mengurutkan dalam urutan naik, dan dengan menggunakan $b <=> $a, kita mengurutkan dalam urutan turun.

Itu seperti memiliki topi pengurutan dari Harry Potter, tapi untuk angka!

Contoh 5: Pengurutan Objek Kompleks

Sekarang, mari kita tingkatkan lagi dan gunakan Operator Kapal Angkasa untuk mengurutkan array objek.

<?php
class Person {
public $name;
public $age;

public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
}

$people = [
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35),
new Person("David", 28)
];

usort($people, function($a, $b) {
return $a->age <=> $b->age;
});

echo "Diurutkan berdasarkan umur:\n";
foreach ($people as $person) {
echo $person->name . " - " . $person->age . "\n";
}

usort($people, function($a, $b) {
return $a->name <=> $b->name;
});

echo "\nDiurutkan berdasarkan nama:\n";
foreach ($people as $person) {
echo $person->name . " - " . $person->age . "\n";
}
?>

Output:

Diurutkan berdasarkan umur:
Bob - 25
David - 28
Alice - 30
Charlie - 35

Diurutkan berdasarkan nama:
Alice - 30
Bob - 25
Charlie - 35
David - 28

Dalam contoh ini, kita membuat kelas Person dengan properti name dan age. Kemudian kita menggunakan Operator Kapal Angkasa untuk mengurutkan array objek Person, terlebih dahulu berdasarkan umur dan kemudian berdasarkan nama.

Itu seperti memiliki departemen HR yang super efisien yang dapat segera mengatur database karyawan Anda!

Operator Kapal Angkasa dengan Operand Boolean

Akhirnya, mari kita lihat bagaimana Operator Kapal Angkasa berperilaku dengan nilai boolean.

<?php
$result1 = true <=> false;
echo "true <=> false = $result1\n";

$result2 = false <=> true;
echo "false <=> true = $result2\n";

$result3 = true <=> true;
echo "true <=> true = $result3\n";
?>

Output:

true <=> false = 1
false <=> true = -1
true <=> true = 0

Ketika membandingkan nilai boolean:

  • true dianggap lebih besar dari false
  • false dianggap lebih kecil dari true
  • true sama dengan true, dan false sama dengan false

Itu seperti memiliki detektor kebenaran di dalam kode Anda!

Ringkasan

Untuk mengakhiri perjalanan kapal angkasa kita, mari rangkum penggunaan berbagai macam Operator Kapal Angkasa dalam tabel praktis:

Penggunaan Contoh Hasil
Angka 5 <=> 10 -1
String "apple" <=> "banana" -1
Array [1, 2, 3] <=> [1, 2, 4] -1
Pengurutan usort($array, fn($a, $b) => $a <=> $b) Mengurutkan dalam urutan naik
Objek $person1->age <=> $person2->age Membandingkan properti objek
Boolean true <=> false 1

Dan begitu juga, bintang pemrogram masa depan! Anda baru saja menguasai Operator Kapal Angkasa di PHP. Ingat, seperti kapal angkasa yang baik, latihan membuat sempurna. Jadi, jangan khawatir untuk mencoba operator ini dalam kode Anda sendiri. Sebelum Anda tahu, Anda akan dapat mengendarai galaksi PHP dengan mudah!

Credits: Image by storyset