PHP bu sözdizimi nedir?

4 Cevap php

Ben daha iyi benim ihtiyaçlarına uygun bir komut dosyasını değiştirerek üzerinde çalışıyorum, ve ben bu kodu çizgi geldi:

return isset($_COOKIE[$parameter_name]) ? $_COOKIE[$parameter_name] : "";

Ben işlevi kendisi aslında bir çerez alıcı bir yöntem olduğunu biliyorum, ama bu sözdizimi oldukça ne emin değilim (yani ve "?" ":") Anlamına gelir. Bu gerçekten aptalca bir soru ise özür dilerim, ama birisi bana bunu açıklayabilir?

4 Cevap

Bir ternary operation var ve temelde bir if / / başka bir yazı daha kompakt bir yoldur.

Yani kod örneğinde yerine yazmak zorunda kullanılıyor:

if (isset($_COOKIE[$parameter_name])) {
    return $_COOKIE[$parameter_name];
} else {
    return "";
}

Belirli PHP olmayan bir ternary operation hangi ve çoğu langauges var.

(condition) ? true_case : false_case

Ve bence sadece örnekteki gibi kısa bir gömlekleri olarak kullanılmalıdır. Aksi readabilty acı olacaktır - yani asla yuva üçlü operasyonu (bunu yapmak mümkün olsa).

? : Üçlü operatörü bulunmaktadır. Onun çok hızlı ise sonra b else c:

if (a) { return b; } else { return c; }

eşdeğerdir:

return a ? b : c;
 return isset($_COOKIE[$parameter_name]) ? $_COOKIE[$parameter_name] : "";

Fonksiyonu dönüş:

$_COOKIE[$parameter_name]

Belirtilen parametresine ile $ _COOKIE varsa, boş bir dize aksi.

Prototype:

condition ? this runs if condition true : this runs if condition false;