Operator digunakan untuk melakukan suatu operasi. Secara umum , operasi pada PHP dapat dikelompokkan pada 6 jenis , yaitu :
1 Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk melakukan fungsi matematika. Operator aritmatika dalam PHP :
Operator | Operasi | Penggunaan |
+ | Penjumlahan | $a+$b |
- | Pengurangan | $a-$b |
* | Perkalian | $a*$b |
/ | Pembagian | $a/$b |
% | Modulus | $a%$b |
Modulus merupakan operasi sisa bagi. Contoh :
12 % 2 = 0 ( 12 dibagi 2 sisanya 0 )
11 % 2 = 1 ( 11 dibagi 2 sisanya 1 )
11 % 2 = 1 ( 11 dibagi 2 sisanya 1 )
2 Operator Assignment
Operator ini digunakan untuk memberikan/mendefinisikan nilai ke sebuah variable.
Operator | Analogi | Contoh |
= | $a = $a | $a = 3 |
+= | $a = $a + 1 | $a += 1 |
-= | $a = $a - 1 | $a -= 1 |
*= | $a = $a * 1 | $a *= 2 |
/= | $a = $a /1 | $a /= 2 |
3 Operator String
Hanya ada satu operator string, yaitu operator concatenation ( . ).
<?php
$a=”Hallo”;
$b= $a . “Selamat Datang di PHP”;
//$b berisikan “Hallo Selamat datang di PHP”
?>
4 Operator Bitwise
Operator bitwise dapat digunakan untuk membuat bit tertentu dari suatu integer menjadi 1 atau 0.
Contoh | Nama | Hasil | Contoh | |
$a & $b | And | Bit yang bernilai 1 pada $a dan $b akan diset 1 | 11 & 13 = 9 | |
$a | $b | Or | Bit yang bernilai 1 pada $a atau $b akan diset 1 | 11 | 13 = 15 | |
$a ^ $b | Xor | Bit yang bernilai 1 pada $a atau $b tetapi tidak pada keduanya akan diset 1 | 11 ^ 13 = 6 | |
~ $a | Not | Bit yang bernilai 1 pada $a akan diset 0, dan sebaliknya. | ~11 = 12 | |
$a << $b | Shift Left | Geser bit $a sebanyak $b langkah ke kiri (setiap langkah berarti “kalikan dengan dua”). | 11 << 2 = 2 | |
$a >> $b | Shift right | Geser bit $a sebanyak $b langkah ke kanan (setiap langkah berarti “bagikan dengan dua”). | 11 >> 2 = 44 |
Operator ini digunakan untuk melakukan suatu operasi perbandingan dan biasanya diletakkan di struktur kontrol program seperti if, elseif.
Contoh | Nama | Hasil |
$a > $b | Lebih dari | True jika $a lebih besar dari $b |
$a <= $b | Kurang dari atau sama dengan | True jika $a lebih kecil dari $b atau $a sama dengan $b |
< | Kurang dari | True jika $a lebih kecil dari $b |
$a >= $b | Lebih besar atau sama dengan | True jika $a lebih besar dari $b atau $a sama dengan $b |
$a == $b | Sama dengan | True jika $a sama dengan $b |
$a != $b | Tidak sama dengan | True jika $a tidak sama dengan $b |
Operator perbandingan lainnya adalah operator trinary “?:” yang memiliki bentuk :
(ekspresi) ? (jika benar) : (jika salah);
Hasil dari suatu perbandingan selalu antara nilai true atau false saja. True jika perbandingannya benar dan sebaliknya akan bernilai salah.
6 Operator Logika
Operator ini digunakan untuk melakukan suatu operasi logika.
Contoh | Nama | Hasil |
$a and $b $a && $b | And | True jika $a sama dengan $b |
$a or $b $a || $b | Or | True jika salah satu $a atau $b adalah benar |
$a xor $b | Exclusive Or | True jika salah satu $a atau $b adalah benar dan tidak keduanya |
!$a | Not | True jika $a tidak benar |
7 Operator Decrement dan Increment
Operator ini diadopsi dari bahasa C++. Digunakan untuk menambahkan atau mengurangi nilai suatu variable dengan 1.
Operator | Keterangan | Contoh |
++$a | Pre-increment | $a = ++$b |
--$a | Pre-decrement | $a = --$b |
$a++ | Post-Increment | $a = $b++ |
$a-- | Post-decrement | $a = $b-- |
Maksud pre adalah nilai dari suatu variable ditambahkan/dikurangi dulu dengan satu baru operasi lainnya dijalankan. Sedangkan post adalah operasi dilaksanakan dulu , kemudian setelah semua operasi selesai baru nilai dari variable itu ditambahkan/dikurangi dengan satu
Contoh:
$a = ++$b ; // $a = 11 dan $b = 11
$a = --$b ; // $a = 10 dan $b = 10
$a = $b++ ; // $a = 10 dan $b = 11
$a = $b-- ; // $a = 11 dan $b=10
$a = $b-- + 3 ; // $a=13 dan $b=9
$a = $b++ + ++$b ; // $a= 20 dan $b = 11
$a = --$b ; // $a = 10 dan $b = 10
$a = $b++ ; // $a = 10 dan $b = 11
$a = $b-- ; // $a = 11 dan $b=10
$a = $b-- + 3 ; // $a=13 dan $b=9
$a = $b++ + ++$b ; // $a= 20 dan $b = 11
8 Operator Presendence
Aturan ini digunakan untuk menentukan urutan atau level dari operator , dimana operator dengan level lebih tinggi akan dikerjakan lebih dahulu.
Operator | Associativity |
New | Non-associative |
[ | Right |
! ~ ++ -- (int) (double)(string)(array)(object) @ | Right |
* / | Left |
+ - . | Left |
<< >> | Left |
< <= > >= | Non-associative |
== != === | Non-associative |
& | Left |
^ | Left |
| | Left |
&& | Left |
|| | Left |
?: | Left |
= += -= *= /= .= %= &= |=^= ~= <<= >>= | Left |
Print | Right |
And | Left |
Xor | Left |
Or | Left |
, | Left |