Kategoriler
Wordpress Web

Deprecated: Unparenthesized a ? b : c ? d hatası nedir?

Bu hata mesajı aslında PHP 7.4 ve sonrası sürümlerde gelen bir uyarı (deprecated notice). Yani çalışmayı durdurmaz ama gelecekte sorun çıkarabileceğini haber veriyor.

Kodda geçen kısım:

a ? b : c ? d : e

Sorunun Sebebi

Bu yazım şekli belirsizdir çünkü PHP önce hangi koşulu değerlendireceğini net belirleyemez.

  • Önce (a ? b : c) mi çalışacak?
  • Yoksa (c ? d : e) kısmı mı a‘ya göre mi bağlanacak?

Çözüm

PHP artık bu tür ifadelerde parantez konulmasını zorunlu kılıyor. Yani şu şekilde düzenlenmesi gerekiyor:

✅ Doğru kullanım örnekleri:

// 1. Eğer a doğruysa b, değilse (c doğruysa d, değilse e)
a ? b : (c ? d : e);

// 2. Eğer (a ? b : c) doğruysa d, değilse e
(a ? b : c) ? d : e;

Senin Durumunda

/wp-content/plugins/js_composer/include/classes/editors/class-vc-frontend-editor.php dosyasında, 646. satırda böyle bir ifade var. Bu, WPBakery Page Builder (eski adı Visual Composer) eklentisinden geliyor.

  • Bu eklentinin kullandığın sürümü eski ve PHP 7.4+ uyumluluğu için güncellenmemiş.
  • En kolay çözüm → Eklentiyi güncellemek. (Güncel sürümde bu hata düzeltilmiş olur.)
  • Alternatif → Kodun içindeki hatalı satıra gidip parantezleri kendin eklemek. (Ama güncelleme sırasında üzerine yazılacağı için kalıcı çözüm değil.)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir