İşleç Önceliği
 
 
  İşleç önceliği iki ifadenin birbirine hangi sıkılıkta bağlı olduğunu
  belirtir. Örneğin, 1 + 5 * 3 ifadesinin sonucu 18 değil,
  16'dır. Çünkü, çarpma ("*") işlecinin önceliği toplama ("+") işlecinden
  yüksektir. Önceliği arttırmak için gerekirse parantezler kullanılabilir.
  Örneğin, (1 + 5) * 3 ifadesinin sonucu 18 olacaktır.
 
 
  İşleçler eşit önceliğe sahip olduklarında aralarındaki ilişkiye işleçlerin
  gruplanışına göre karar verilir. Örneğin "-" isoldan ilişkilendirmelidir,
  dolayısıyla, 1 - 2 - 3 ifadesi
  (1 - 2) - 3 olarak gruplanır ve -4
  olarak değerlendirlir. "=" ise sağdan ilişkilendirmelidir, dolayısıyla,
  $a = $b = $c ifadesi $a = ($b = $c)
  olarak gruplanır.  Özetle, soldan ilişkilendirme, ifadenin soldan sağa, sağdan
  ilişkilendirme ise sağdan sola değerlendirileceği anlamına gelir.
 
 
  İlişkisel olmayan eş öncelikli işleçler birbirlerinin ardından
  kullanılamazlar, örneğin 1 < 2 > 1 ifadesi PHP için
  uygun değilken 1 <= 1 == 1 ifadesi uygundur. Sebebi
  == işlecinin <= işlecinden daha az
  öncelikli olmasıdır.
 
 
  İlişkisellik sadece iki terimli (ve üç terimli) işleçler için anlamlıdır.
  Tek terimli işleçlerin önüne veya ardına ekleme yapıldığından bu fikir tek
  terimlilere uygulanabilir değildir. Örneğin, !!$a
  ifadesi sadece !(!$a) olarak gruplanabilir.
 
 
  Parantez kullanımı gerekli olmasa bile çoğunlukla kodun okunabilirliğini
  arttırır. Örtük işleç önceliğine ve ilişkiselliğine güvenmektense kodu
  açıkça gruplamak daha iyidir.
 
 
  Aşağıdaki listede işleçler en yüksek öncelikliden başlayıp en düşük
  öncelikliye doğru sıralanmışlardır. Aynı satırda yer alan işleçler
  eş öncelikli olup hangi sırada ele alınacaklarına değerlendirme sırasında
  karar verilir.
  
 
 
  
   Örnek 1 - Öncelik yönü
   
<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// üç terimli işlecin değerlendirilmesi C/C++ dillerinden farklıdır
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2 (PHP 8.0.0 öncesi)
$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>
    
   
 
 
  İşleç önceliklerini ve işlem yönünü ifadeni gruplanışı belirler. PHP
  (genelde) ifadenin hangi sırayla değerlendirileceğini belirmez ve
  kodlamada özel bir değerlendirme sırası kabulünden kaçınılmalıdır.
  Çünkü davranış PHP'nin sürümleri arasında farklı olabildiği gibi
  sarmalayan koda bağlı olarak da değişebilir.
  
   Örnek 2 - Tanımsız değerlendirme sırası
   
<?php
$a = 1;
echo $a + $a++; // 2 veya 3 basabilir
$i = 1;
$array[$i] = $i++; // indis 1 veya 2 olabilir
?>
    
   
  
   Örnek 3 +, - ve .
    aynı önceliğe sahiptir (PHP 8.0.0 öncesi)
   
<?php
$x = 4;
// bu satır beklenmedik bir çıktı ile sonuçlanabilir:
echo "x eksi bir eşittir " . $x-1 . ", ya da ben öyle umdum\n";
// çünkü aşağıdaki satır gibi değerlendirilir:
echo (("x eksi bir eşittir " . $x) - 1) . ", ya da ben öyle umdum\n";
// istenen öncelik parantez kullanarak elde edilebilir:
echo "x eksi bir eşittir " . ($x-1) . ", ya da ben öyle umdum\n";
?>
    
   
Yukarıdaki örneğin çıktısı:
-1, ya da ben öyle umdum
-1, ya da ben öyle umdum
x eksi bir eşittir 3, ya da ben öyle umdum
 
   
 
 Bilginize: 
  
   Eşitlik (=) işleci çoğu işleçten daha düşük önceliğe
   sahip olduğundan PHP halen şuna benzer ifadelere izin vermektedir:
   foo() işlevinin dönüş değerini $a
   değişkenine atayan if (!$a = foo()) ifadesi.