Pada bab ini kita akan membahas penggunaan berbagai operator di PHP.
Di PHP, operator penugasan = digunakan untuk memberikan nilai ke suatu variabel.
Di PHP, operator aritmatika + digunakan untuk menjumlahkan nilai secara bersamaan.
operator | nama | menggambarkan | Contoh | hasil |
---|---|---|---|---|
x + kamu | menambahkan | jumlah x dan y | 2+2 | 4 |
xy | mengurangi | perbedaan antara x dan y | 5-2 | 3 |
x*y | mengambil | hasil kali x dan y | 5*2 | 10 |
x/y | menghapus | Hasil bagi x dan y | 15/5 | 3 |
x% kamu | Modulo (sisa pembagian) | Sisa x dibagi y | 5% 210% 810% 2 | 120 |
- X | Meniadakan | meniadakan x | -2 | -2 |
a.b | mendekatkan | Gabungkan dua string | "Hai". | Hai |
Contoh berikut menunjukkan hasil yang berbeda dengan menggunakan operator aritmatika yang berbeda:
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // Keluaran 16 gema ' <br> ' ; // Pemutusan baris gema ( $x - $y ) ; // Keluaran 4 gema ' <br> ' ; // Pemutusan baris gema ( $x * $y ) ; // Keluaran 60 gema ' <br> ' ; // Pemutusan baris gema ( $x / $y ) ; // Keluaran 1.6666666666667 gema ' <br> ' ; // Pemutusan baris gema ( $x % $y ) ; // Keluaran 4 gema ' <br> ' ; // Pemutusan baris gema - $x ? >
Versi PHP7+ memiliki operator pembagian bilangan bulat baru intdiv() , contoh penggunaan:
<?php var_dump ( intdiv ( 10 , 3 ) ) ? >
Contoh di atas akan menampilkan:
ke dalam(3)
Di PHP, operator penugasan dasar adalah "=". Artinya operan kiri disetel ke nilai ekspresi sebelah kanan. Artinya, nilai "$x = 5" adalah 5.
operator | Setara dengan | menggambarkan |
---|---|---|
x = kamu | x = kamu | Operan kiri diatur ke nilai ekspresi sebelah kanan |
x += kamu | x = x + kamu | menambahkan |
x -= kamu | x = x - kamu | mengurangi |
x*=kamu | x = x * kamu | mengambil |
x /= kamu | x = x / kamu | menghapus |
x%=kamu | x = x% kamu | Modulo (sisa pembagian) |
sebuah .= b | sebuah = sebuah | Gabungkan dua string |
Contoh berikut menunjukkan hasil yang berbeda dengan menggunakan operator penugasan yang berbeda:
<?php $ x = 10 ; $x ; // Keluaran 10 $y = 20 ; $y + = 100 ; $y ; // Keluaran 120 $z = 50 ; $z - = 25 ; $z ; // Keluaran 25 $i = 5 ; $i * = 6 ; $i ; // Keluaran 30 $j = 10 ; $j / = 5 ; $j ; // Keluaran 2 $k = 15 ; $k % = 4 ; $k ; // Keluaran 3 ?>
Contoh berikut menunjukkan hasil yang sama dengan menggunakan operator string yang berbeda:
<?php $ a = " Halo " ; $ b = $ a $b ; // Keluaran Halo dunia! $x = " Halo " ; $x . = " dunia! " ; $x ; // Keluaran Halo dunia! ?>
operator | nama | menggambarkan |
---|---|---|
++x | pra-kenaikan | Tambahkan 1 ke x dan kembalikan x |
x++ | pasca kenaikan | Kembalikan x, lalu tambahkan 1 ke x |
-- X | Pra-pengurangan | Kurangi x sebanyak 1, lalu kembalikan x |
X -- | Menurun setelahnya | Kembalikan x, lalu kurangi 1 dari x |
Contoh berikut menunjukkan hasil penggunaan operator kenaikan/penurunan:
<?php $x = 10 ; gema ++ $x ; // Keluaran 11 $ y = 10 ; $y ++; // Keluaran 10 $z = 5 ; gema -- $z ; // Keluaran 4 $ i = 5 ; $i --; // Keluaran 5 ?>
Operator perbandingan memungkinkan Anda membandingkan dua nilai:
operator | nama | menggambarkan | Contoh |
---|---|---|---|
x == kamu | setara | Mengembalikan nilai benar jika x sama dengan y | 5==8 mengembalikan salah |
x === kamu | benar-benar sama dengan | Mengembalikan nilai benar jika x sama dengan y dan keduanya bertipe sama | 5==="5" menghasilkan nilai salah |
x != kamu | tidak sama dengan | Mengembalikan nilai benar jika x tidak sama dengan y | 5!=8 mengembalikan nilai benar |
x <> kamu | tidak sama dengan | Mengembalikan nilai benar jika x tidak sama dengan y | 5<>8 mengembalikan nilai benar |
x !== kamu | Jelas tidak setara dengan | Mengembalikan nilai benar jika x tidak sama dengan y, atau keduanya tidak bertipe sama | 5!=="5" mengembalikan nilai benar |
x > kamu | lebih besar dari | Mengembalikan nilai benar jika x lebih besar dari y | 5>8 mengembalikan salah |
x < kamu | kurang dari | Mengembalikan nilai benar jika x lebih kecil dari y | 5<8 mengembalikan nilai benar |
x >= kamu | Lebih besar dari atau sama dengan | Mengembalikan nilai benar jika x lebih besar dari atau sama dengan y | 5>=8 mengembalikan salah |
x <= kamu | kurang dari atau sama dengan | Mengembalikan nilai benar jika x lebih kecil atau sama dengan y | 5<=8 mengembalikan nilai benar |
Contoh berikut menunjukkan hasil yang berbeda dengan menggunakan beberapa operator perbandingan:
<?php $x = 100 ; $ y = " 100 " ; var_dump ( $x == $y ) ; " <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x ! == $y ) ; " <br> " ; $ a = 50 ; $ b = 90 ;" <br> " ; var_dump ( $a < $b ) ? >
operator | nama | menggambarkan | Contoh |
---|---|---|---|
x dan y | Dan | Mengembalikan nilai benar jika x dan y keduanya benar | x=6y=3(x < 10 dan y > 1) mengembalikan nilai true |
x atau y | atau | Mengembalikan nilai benar jika setidaknya satu dari x dan y benar | x=6y=3(x==6 atau y==5) mengembalikan nilai true |
x x atau y | XOR | Jika hanya satu dari x dan y yang benar, maka kembalikan nilai benar | x=6y=3(x==6 xor y==3) mengembalikan nilai salah |
x && kamu | Dan | Mengembalikan nilai benar jika x dan y keduanya benar | x=6y=3(x < 10 && y > 1) mengembalikan nilai true |
x || | atau | Mengembalikan nilai benar jika setidaknya satu dari x dan y benar | x=6y=3(x==5 || y==5) menghasilkan nilai salah |
! X | TIDAK | Jika x tidak benar, kembalikan nilai benar | x=6y=3!(x==y) mengembalikan nilai true |
operator | nama | menggambarkan |
---|---|---|
x + kamu | mengumpulkan | himpunan x dan y |
x == kamu | setara | Mengembalikan nilai benar jika x dan y memiliki pasangan kunci/nilai yang sama |
x === kamu | Persamaan | Mengembalikan nilai benar jika x dan y memiliki pasangan kunci/nilai yang sama dalam urutan dan tipe yang sama |
x != kamu | Tidak setara | Mengembalikan nilai benar jika x tidak sama dengan y |
x <> kamu | Tidak setara | Mengembalikan nilai benar jika x tidak sama dengan y |
x !== kamu | Tidak identik | Mengembalikan nilai benar jika x tidak sama dengan y |
Contoh berikut menunjukkan hasil yang berbeda menggunakan beberapa operator array:
<?php $x = susunan ( " a " => " merah " , " b " => " hijau " ) ; $y = susunan ( " c " => " biru " , " d " = > " kuning " ) $z = $x + $y ; // Gabungkan array $x dan $y var_dump ( $ z ) ; var_dump ( $ x == $ y ) ; x !== $y ) ? >
Operator kondisional lainnya adalah operator "?:" (atau ternary).
(expr1) ? (expr2) : (expr3)
Nilai ketika expr1 bernilai TRUE adalah expr2, dan ketika expr1 bernilai FALSE, nilainya adalah expr3.
Mulai PHP 5.3, bagian tengah dari operator ternary dapat dihilangkan. Ekspresi expr1?: expr3 mengembalikan expr1 jika expr1 bernilai TRUE dan expr3 sebaliknya.
Dalam contoh berikut, permintaan $_GET dinilai berisi nilai pengguna. Jika demikian, $_GET['user'] dikembalikan, jika tidak, tidak ada yang dikembalikan:
<?php $test = ' Tutorial Pembuat Kode ' ; // Metode penulisan normal $namapengguna = isset ( $test ) ? $test : ' tidak ada ' ; $nama pengguna , PHP_EOL ; // Metode penulisan versi PHP 5.3+ $namapengguna = $ tes ?: ' tidak ada ' ; $nama pengguna , PHP_EOL ? >
Tutorial untuk Tutorial Coders Coders
Catatan: PHP_EOL adalah karakter baris baru, kompatibel dengan platform yang lebih besar.
Terdapat tambahan operator penggabungan NULL ??
pada versi PHP7+.
<?php // Jika $_GET['user'] tidak ada, kembalikan 'nobody', jika tidak, kembalikan nilai $_GET['user'] $namapengguna = $_GET [ ' pengguna ' ] ?? ' tidak ada ' ; // Operator ternary serupa $namapengguna = isset ( $_GET [ ' pengguna ' ] ) ? $_GET [ ' pengguna ' ] : ' tidak ada ' ? >
PHP7+ mendukung operator perbandingan gabungan, contohnya sebagai berikut:
<?php // Tipe bilangan bulat gema 1 <=> 1 ; // 0 gema 1 <=> 2 ; // -1 gema 2 <=> 1 ; // 1 // Tipe titik mengambang gema 1 , 5 <=> 1 , 5 ; // 0 gema 1 ,5 <=> 2 , 5 ; // -1 gema 2 , 5 <=> 1 , 5 ; // 1 // Rangkaian gema " sebuah " <=> " sebuah " ; // 0 gema " sebuah " <=> " b " ; // -1 gema " b " <=> " sebuah " ; // 1 ?>
Tabel berikut mencantumkan operator dari prioritas tertinggi hingga terendah. Operator-operator pada baris yang sama mempunyai prioritas yang sama, dan arah penggabungannya menentukan urutan evaluasi.
Catatan : Kiri = dari kiri ke kanan, kanan = dari kanan ke kiri.
Arah pengikatan | operator | Informasi Tambahan |
---|---|---|
tidak ada | mengkloning baru | klon dan baru |
Kiri | [ | susunan() |
Kanan | ++ -- ~ (int) (float) (string) (array) (objek) (bool) @ | Jenis dan kenaikan/penurunan |
tidak ada | contoh | jenis |
Kanan | ! | Operator logika |
Kiri | */% | operator aritmatika |
Kiri | + – . | Operator aritmatika dan string |
Kiri | << >> | Operator bit |
tidak ada | == != === !== <> | operator perbandingan |
Kiri | & | Operator bit dan referensi |
Kiri | ^ | Operator bit |
Kiri | | | Operator bit |
Kiri | && | Operator logika |
Kiri | || | Operator logika |
Kiri | ? | operator terner |
Kanan | = += -= *= /= .= %= &= |= ^= <<= >>= => | operator penugasan |
Kiri | Dan | Operator logika |
Kiri | xor | Operator logika |
Kiri | atau | Operator logika |
Kiri | , | Digunakan di banyak tempat |
Dalam prioritas operator, atau, ||, && dan dan semuanya merupakan operator logika dengan efek yang sama, namun prioritasnya berbeda.
<?php // Prioritas: && > = > dan // Prioritas: || $a = 3 ; $b = salah ; $c = $a atau $b ; var_dump ( $c ) ; // $c di sini adalah nilai int 3, bukan nilai boolean yang sebenarnya $d = $a ||. $b ; var_dump ( $d ) ; // $d di sini adalah nilai boolean yang benar ?>
Hasil keluaran dari contoh di atas adalah:
int(3)bodoh(benar)
Kami dengan jelas menunjukkan urutan operasi melalui pemasangan tanda kurung, daripada mengandalkan prioritas operator dan asosiatif, yang biasanya dapat meningkatkan keterbacaan kode.
<?php // Operasi prioritas braket $a = 1 ; $ b = 2 ; $c = 3 ; $d = $a + $b * $c ; $ d ; " n " ; $e = ( $a + $b ) * $c ; // Gunakan tanda kurung gema $ e ; " n " ;
Hasil keluaran dari contoh di atas adalah:
79