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 adı verilen belirli bir sırayı takip eder. Tıpkı matematikte olduğu gibi, çarpma ve bölme işlemleri toplama ve çıkarmadan önce gerçekleştirilir.
<?php
echo 5 + 3 * 2; // Çıktı: 11, 16 değil
?>PHP önce 3 × 2 işlemini yapar (6 sonucunu alır), ardından 5 ekler. Eğer operatörler eşit önceliğe sahip olsaydı, soldan sağa hesaplama yapardı: 5 + 3 = 8, sonra 8 × 2 = 16. Ancak işleyiş bu şekilde değildir.
Öğrendiğiniz operatörler için en yüksekten en düşüğe işlem önceliği şöyledir:
| Ö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)
?>Şüpheye düştüğünüzde, niyetinizi netleştirmek için parantez kullanın. Bu, kodunuzun okunmasını kolaylaştırır ve beklenmedik sonuçları önler.
Görev
KolayGirdiden üç sayı okuyun: a, b ve c.
Toplama işleminin çarpma işleminden önce gerçekleşmesini sağlamak için parantez kullanarak aşağıdaki ifadenin sonucunu hesaplayın ve yazdırın:
(a + b) * c ** 2
Bu şu anlama gelir: önce a ve b'yi toplayın, ardından bu toplamı c'nin 2. kuvveti ile çarpın.
Örnek:
Girdiler 2, 3 ve 4 ise, sonuç 80 olmalıdır çünkü:
- İlk olarak, 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
// Girdiyi 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
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