# PHP Dersleri #7: Aritmetik Operatörler

Kaynak: https://webodasi.com/php-dersleri-7-aritmetik-operatorler/
Yazar: Uzmoon
Yayın: 2026-11-12
Güncelleme: 2026-11-12

> Bu derste PHP'de temel aritmetik operatörler (toplama, çıkarma, çarpma, bölme, modül ve üs alma) işlenir. Her operatör çalıştırılabilir kod örnekleriyle anlatılır ve sayısal verilerle matematiksel işlemler yapma becerisi kazandırılır.

## Bu Dersin Amacı

 

PHP'de sayısal veriler üzerinde temel matematiksel işlemleri (toplama, çıkarma, çarpma, bölme, mod alma ve üs alma) gerçekleştirmek için aritmetik operatörleri tanımak ve doğru kullanabilmek.

 

## Aritmetik Operatörler Nedir?

 

Aritmetik operatörler, iki sayısal değer üzerinde matematiksel bir işlem yaparak yeni bir sayısal değer üreten sembollerdir. PHP, diğer programlama dilleri gibi standart dört işlem operatörlerine ek olarak modül (kalan bulma) ve üs alma operatörlerini de sağlar. Bu operatörler tam sayı (integer) ve ondalıklı sayı (float) veri tipleriyle çalışır.

 

## Temel Dört İşlem Operatörleri

 

En yaygın kullanılan dört operatör toplama (+), çıkarma (-), çarpma (*) ve bölme (/) işlemleridir. Bölme operatörü her zaman float (ondalıklı) sonuç döndürür; tam sayı bölümü için `intdiv()` fonksiyonu veya (int) tipi dönüşümü kullanılır.

 

```
<?php
// Temel dört işlem operatörleri
$sayi1 = 20;
$sayi2 = 6;

$toplam = $sayi1 + $sayi2;        // 26
$fark   = $sayi1 - $sayi2;        // 14
$carpim = $sayi1 * $sayi2;        // 120
$bolum  = $sayi1 / $sayi2;        // 3.333... (float)
$tamBolum = intdiv($sayi1, $sayi2); // 3 (integer)

printf("Toplam: %d
", $toplam);
printf("Fark: %d
", $fark);
printf("Çarpım: %d
", $carpim);
printf("Bölüm (float): %.2f
", $bolum);
printf("Tam Bölüm (int): %d
", $tamBolum);
?>
```

 

## Modül Operatörü (%)

 

Modül operatörü (`%`), bir sayının başka bir sayıya bölümünden kalanı verir. Sayı çift/tek kontrolü, döngülerde periyodik işlemler veya saat/dakika hesaplamalarında sıkça kullanılır. PHP 8'de negatif sayılar için kalan işareti bölenin işaretini izler (örneğin `-5 % 3` sonucu `-2` olur).

 

```
<?php
// Modül operatörü örnekleri
$sayi = 17;
$bolen = 5;

$kalan = $sayi % $bolen; // 2

printf("%d sayısı %d sayısına bölündüğünde kalan: %d
", $sayi, $bolen, $kalan);

// Çift/tek sayı kontrolü
for ($i = 1; $i <= 5; $i++) {
    if ($i % 2 === 0) {
        printf("%d çifttir
", $i);
    } else {
        printf("%d tektir
", $i);
    }
}
?>
```

 

## Üs Alma Operatörü (**)

 

PHP 5.6'dan itibaren eklenen `**` operatörü, sol taraftaki sayının (taban) sağ taraftaki sayı (üs) kadar kendiyle çarpılmasını sağlar. `pow()` fonksiyonu ile aynı işlevi görür ancak operatör kullanımı daha okunabilir ve hızlıdır. Üs negatif veya ondalıklı da olabilir.

 

```
<?php
// Üs alma operatörü
$taban = 2;
$us = 10;

$sonuc = $taban ** $us; // 1024
$karekok = 16 ** 0.5;   // 4.0 (float)
$ters = 2 ** -2;        // 0.25

printf("%d üzeri %d = %d
", $taban, $us, $sonuc);
printf("16 üzeri 0.5 = %.1f
", $karekok);
printf("2 üzeri -2 = %.2f
", $ters);

// pow() fonksiyonu ile karşılaştırma
printf("pow(2, 10) = %d
", pow(2, 10));
?>
```

 

## Operatör Önceliği ve Parantez Kullanımı

 

Aritmetik ifadelerde operatörler matematiksel öncelik sırasına göre değerlendirilir: önce üs alma (`**`), sonra çarpma/bölme/modül (`*`, `/`, `%`), en son toplama/çıkarma (`+`, `-`). Aynı öncelikteki işlemler soldan sağa (sol-associative) işletilir; tek istisna `**` operatörü sağdan sola (right-associative) çalışır. İstenen sırayı garanti altına almak için parantez kullanmak en güvenli yöntemdir.

 

```
<?php
// Operatör önceliği örnekleri
$sonuc1 = 10 + 5 * 2;      // 20 (önce çarpma)
$sonuc2 = (10 + 5) * 2;    // 30 (parantez öncelikli)
$sonuc3 = 2 ** 3 ** 2;     // 512 (sağdan sola: 2 ** (3 ** 2) = 2 ** 9)
$sonuc4 = (2 ** 3) ** 2;   // 64  (soldan sağa: (2 ** 3) ** 2 = 8 ** 2)

printf("10 + 5 * 2 = %d
", $sonuc1);
printf("(10 + 5) * 2 = %d
", $sonuc2);
printf("2 ** 3 ** 2 = %d (sağdan sola)
", $sonuc3);
printf("(2 ** 3) ** 2 = %d (parantezli)
", $sonuc4);
?>
```

 

## Sık Yapılan Hatalar

 

- **Bölme operatöründe tam sayı beklemek:** `/` her zaman float döndürür; tam sayı sonucu için `intdiv()` veya `(int)` dönüşümü yapılmalıdır.
- **Modül operatöründe negatif sayılarda beklenmedik kalan:** PHP'de `-5 % 3` sonucu `-2` olur (bölden pozitifse kalan negatif olabilir). Matematiksel mod (pozitif kalan) için `(($a % $b) + $b) % $b` formülü kullanılır.
- **Üs alma operatörünün sağdan sola çalışmasını unutmak:** `2 ** 3 ** 2` ifadesi `(2 ** 3) ** 2 = 64` değil, `2 ** (3 ** 2) = 512` sonucunu verir.
- **Değişken tanımsız kullanımı:** İşlem yapılacak değişkenler önceden tanımlanmamışsa `Undefined variable` uyarısı alınır.
- **String ifadelerle matematik yapmaya çalışmak:** Sayısal stringler ("10") otomatik dönüşür ancak sayısal olmayan stringler ("abc") `0` sayılır ve uyarı verir.

 

## Alıştırma

 

Klavyeden girilen (veya kodda sabit tanımlanan) bir sayının küpünü (3. kuvvetini) hesaplayan, sonucu ekrana yazdıran ve sayının çift mi tek mi olduğunu modül operatörüyle belirten bir PHP betiği yazın.

 

### Çözüm

 

```
<?php
// Alıştırma çözümü: Sayının küpünü ve tek/çift durumunu bulma
$sayi = 4; // Buraya istediğiniz sayıyı yazabilirsiniz

$kup = $sayi ** 3;
$durum = ($sayi % 2 === 0) ? "çift" : "tek";

printf("Sayı: %d
", $sayi);
printf("Küpü (%d^3): %d
", $sayi, $kup);
printf("Sayı %s bir sayıdır.
", $durum);
?>
```

 

## Özet

 

- PHP'de `+`, `-`, `*`, `/` operatörleri temel dört işlem için kullanılır; bölme her zaman float döner.
- `%` operatörü bölme işleminin kalanını verir; çift/tek kontrolü ve periyodik işlemler için kritiktir.
- `**` operatörü (PHP 5.6+) üs alma yapar; `pow()` fonksiyonuna alternatiftir ve sağdan sola çalışır.
- Operatör önceliği: üs alma > çarpma/bölme/modül > toplama/çıkarma. Parantezlerle istediğiniz sırayı zorlayabilirsiniz.
