Kesamaan & Identitas
Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 24 dari 71.
PHP menyediakan dua cara untuk memeriksa apakah nilai-nilai sama: operator kesetaraan (==) dan operator identitas (===). Memahami perbedaannya sangat penting untuk menulis kode yang andal.
Operator kesetaraan (==) membandingkan nilai setelah mengonversinya ke tipe yang sama. Ini disebut "perbandingan longgar":
<?php
var_dump(5 == "5"); // bool(true): string diubah menjadi angka
var_dump(0 == false); // bool(true): keduanya menjadi 0
var_dump(1 == true); // bool(true): keduanya menjadi 1
?>Operator identitas (===) membandingkan nilai dan tipe data. Tidak ada konversi, jadi keduanya harus sama persis:
<?php
var_dump(5 === "5"); // bool(false): int dibandingkan dengan string
var_dump(5 === 5); // bool(true): tipe dan nilai sama
var_dump(0 === false); // bool(false): int dibandingkan dengan bool
?>Untuk perbandingan "tidak sama dengan", gunakan != (longgar) atau !== (ketat):
<?php
var_dump(5 != "5"); // bool(false): nilainya sama
var_dump(5 !== "5"); // bool(true): tipenya berbeda
?>Sebagai praktik terbaik, utamakan === dan !== untuk menghindari kejutan akibat konversi tipe yang tidak terduga.
Tantangan
MudahBaca dua nilai dari input: sebuah angka (sebagai string) dan sebuah integer.
Gunakan operator kesetaraan dan identitas untuk mengevaluasi perbandingan berikut dan cetak hasil masing-masing menggunakan var_dump(), setiap hasil pada baris baru:
- Periksa apakah nilai string sama dengan integer menggunakan perbandingan longgar (
==) - Periksa apakah nilai string sama dengan integer menggunakan perbandingan ketat (
===) - Periksa apakah nilai string tidak sama dengan integer menggunakan perbandingan longgar (
!=) - Periksa apakah nilai string tidak sama dengan integer menggunakan perbandingan ketat (
!==)
Catatan: Pertahankan nilai pertama sebagai string (jangan lakukan cast). Lakukan cast pada nilai kedua menjadi integer.
Contoh:
Jika inputnya adalah 42 dan 42, outputnya seharusnya:
bool(true)
bool(false)
bool(false)
bool(true)Penjelasan:
"42" == 42bernilai true (nilainya sama setelah konversi tipe)"42" === 42bernilai false (string vs int - different types)"42" != 42bernilai false (nilainya sama)"42" !== 42bernilai true (tipenya berbeda)
Coba sendiri
<?php
// Baca input
$stringValue = trim(fgets(STDIN));
$intValue = intval(trim(fgets(STDIN)));
// TODO: Tulis kodemu di bawah ini
// Gunakan var_dump() untuk mencetak hasil setiap perbandingan pada baris baru:
// 1. Kesetaraan longgar (==)
// 2. Kesetaraan ketat (===)
// 3. Ketidaksamaan longgar (!=)
// 4. Ketidaksamaan ketat (!==)
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Perbandingan & Logika
Operator PerbandinganKesamaan & IdentitasOperator Logika Bagian 1Operator Logika Bagian 2Rangkuman: Logika Sederhana2Variabel dan Tipe Data
AngkaString dan Tanda KutipBooleanKonvensi PenamaanRangkuman, Inisialisasi VariabelVariabel KosongPenggabungan stringMengambil input PenggunaKonversi ke Tipe Data Lain5Logika Percabangan
Pernyataan ifIf-elseOperator ternaryOperator koalesensi nullPernyataan switchRangkuman: Membuat Keputusan3Operator Dasar
Operator AritmetikaOperator ModuloOperator PangkatPenugasan GabunganInkrementasi/DekrementasiPrioritas OperatorUlasan: Perhitungan SederhanaOperator stringLatihan sendiri: Compiler PHP online