PHP Dersleri #7: Aritmetik Operatörler
PHP ile dört işlem, mod alma ve üs alma operatörlerini öğrenin; sayısal veriler üzerinde matematiksel hesaplamalar yapın.

İçindekiler
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çinintdiv()veya(int)dönüşümü yapılmalıdır. - Modül operatöründe negatif sayılarda beklenmedik kalan: PHP'de
-5 % 3sonucu-2olur (bölden pozitifse kalan negatif olabilir). Matematiksel mod (pozitif kalan) için(($a % $b) + $b) % $bformülü kullanılır. - Üs alma operatörünün sağdan sola çalışmasını unutmak:
2 ** 3 ** 2ifadesi(2 ** 3) ** 2 = 64değil,2 ** (3 ** 2) = 512sonucunu verir. - Değişken tanımsız kullanımı: İşlem yapılacak değişkenler önceden tanımlanmamışsa
Undefined variableuyarısı alınır. - String ifadelerle matematik yapmaya çalışmak: Sayısal stringler ("10") otomatik dönüşür ancak sayısal olmayan stringler ("abc")
0sayı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.
İlk yorumu siz yazın.