Operatör Önceliği
Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası. Ders 20 / 71.
Bir ifade birden fazla işleç içerdiğinde PHP, işleç önceliği adı verilen belirli bir sırayı izler. Tıpkı matematikte olduğu gibi, çarpma ve bölme işlemleri toplama ve çıkarma işlemlerinden önce gerçekleştirilir.
<?php
echo 5 + 3 * 2; // Çıktı: 11, 16 değil
?>PHP önce 3 × 2’yi çarpar (6 elde eder), ardından 5 ekler. Operatörlerin önceliği eşit olsaydı, soldan sağa hesap yapardı: 5 + 3 = 8, ardından 8 × 2 = 16. Ancak işler böyle yürümez.
Öğrendiğiniz operatörler için en yüksekten en düşüğe öncelik sırası şöyledir:
| Öncelik | Operatörler |
| En yüksek | ** (üs alma) |
| Yüksek | * / % |
| Düşük | + - |
Varsayılan işlem sırasını geçersiz kılmak için parantezleri 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)
?>Şüpheye düştüğünüzde, niyetinizi açıkça belirtmek için parantezleri kullanın. Bu, kodunuzu okumayı kolaylaştırır ve beklenmedik sonuçları önler.
Görev
KolayGirdiden üç sayı okuyun: a, b ve c.
Toplamanın çarpmadan önce gerçekleşmesini sağlamak için parantezleri kullanarak aşağıdaki ifadenin sonucunu hesaplayın ve yazdırın:
(a + b) * c ** 2
Bu şu anlama gelir: önce a ve b sayılarını toplayın, ardından bu toplamı 2. kuvvetine yükseltilmiş c ile çarpın.
Örnek:
Girdiler 2, 3 ve 4 ise çıktı 80 olmalıdır, çünkü:
- Önce 2 + 3 = 5 işlemini yapın
- Ardından 4 ** 2 = 16 işlemini hesaplayın
- Son olarak 5 * 16 = 80 işlemini yapın
Kendin dene
<?php
// Girişi oku
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO: (a + b) * c ** 2 hesaplamak için kodunuzu aşağıya yazın
// Sonucu yazdır
echo $result;
?>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
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma OperatörleriEşitlik ve KimlikMantıksal Operatörler 1. BölümMantıksal Operatörler 2. BölümTekrar - Basit Mantık2Değişkenler ve Veri Türleri
SayılarDizeler ve Tırnak İşaretleriBoolean DeğerleriAdlandırma KurallarıTekrar - Değişken BaşlatmaBoş DeğişkenlerDize BirleştirmeKullanıcı Girdisi AlmaFarklı Türlere Dönüştürme5Koşullu Mantık
If İfadesiIf - ElseÜçlü OperatörNull Coalescing OperatörüSwitch İfadesiTekrar - Karar Verme3Temel Operatörler
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüBirleşik AtamaArtırma/AzaltmaOperatör ÖnceliğiTekrar - Basit HesaplamalarDize OperatörleriKendi başına pratik yap: Online PHP derleyicisi