Menu
Coddy logo textTech

Operator Precedence

Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası — ders 20 / 71.

Bir ifade birden fazla operatör içerdiğinde, PHP operatör önceliği adlı belirli bir sırayı izler. Matematikte olduğu gibi, çarpma ve bölme toplama ve çıkarmadan önce yapılır.

<?php
echo 5 + 3 * 2; // Çıktı: 11, 16 değil
?>

PHP önce 3 × 2'yi çarpar (6 elde eder), sonra 5'i toplar. Eğer operatörler eşit önceliğe sahip olsaydı, soldan sağa hesaplanırdı: 5 + 3 = 8, sonra 8 × 2 = 16. Ama işler böyle yürümez.

Öğrendiğiniz operatörler için en yükseğinden en düşüğüne kadar öncelik sırası şöyle:

ÖncelikOperatörler
En Yüksek** (üs alma)
Yüksek* / %
Düşük+ -

Varsayılan sırayı geçersiz kılmak için parantez kullanın. Parantez içindeki işlemler her zaman önce değerlendirilir:

<?php
echo (5 + 3) * 2;  // Çıktı: 16
echo 2 ** 3 * 2;   // Çıktı: 16 (8 * 2)
echo 2 ** (3 * 2); // Çıktı: 64 (2^6)
?>

Şüphe duyduğunuzda, niyetlerinizi netleştirmek için parantez kullanın. Bu, kodunuzu okumayı kolaylaştırır ve beklenmedik sonuçları önler.

challenge icon

Görev

Kolay

Girişten üç sayı oku: a, b ve c.

Aşağıdaki ifadenin sonucunu hesapla ve yazdır, toplamanın çarpımdan önce gerçekleşmesini sağlamak için parantez kullanarak:

(a + b) * c ** 2

Bu şu anlama gelir: önce a ve b'yi topla, sonra o toplamı c'nin 2. kuvvetiyle çarp.

Örnek:

Eğer girdiler 2, 3 ve 4 ise, çıktı 80 olmalıdır çünkü:

  • Önce, 2 + 3 = 5
  • Sonra, 4 ** 2 = 16 hesapla
  • Son olarak, 5 * 16 = 80

Kopya kağıdı

PHP, birden fazla operatör içeren ifadeleri değerlendirirken operatör önceliği kurallarını takip eder:

ÖncelikOperatörler
En Yüksek** (üs alma)
Yüksek* / %
Düşük+ -
<?php
echo 5 + 3 * 2; // Outputs: 11 (multiplication first)
?>

Varsayılan sırayı geçersiz kılmak için parantez kullanın. Parantez içindeki işlemler önce değerlendirilir:

<?php
echo (5 + 3) * 2;  // Outputs: 16
echo 2 ** 3 * 2;   // Outputs: 16 (8 * 2)
echo 2 ** (3 * 2); // Outputs: 64 (2^6)
?>

Kendin dene

<?php
// Girdi oku
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));

// TODO: Aşağıya (a + b) * c ** 2 hesaplayacak kodunuzu yazın

// Sonucu yazdır
echo $result;
?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler