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:
| Öncelik | Operatö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.
Görev
KolayGiriş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:
| Öncelik | Operatö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;
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators