Var == "": Ben sözdizimi bu tür Karşılaştığınız

5 Cevap php

Kod bu biridir:

$vendors[] = array(
    "id" => $row['vendorID'],
    "name" => $row['name'] == "" ? "-" : $row['name'],
    "tel1" => $row['phone1'] == "" ? "-" : $row['phone1'],
    "tel2" => $row['phone2'] == "" ? "-" : $row['phone2'],
    "mail" => $row['email'] == "" ? "-" : $row['email'],
    "web" => $row['web'] == "" ? "-" : $row['web']);

Biri tam olarak ne olduğunu bana açıklayabilir misiniz? Bir Alternative syntax gibi görünüyorsun ama ben bilgiler bulabilirsiniz yönetilen değil.

Teşekkürler

5 Cevap

Bu, ternary operator,

Ifadesi (expr1) ? (expr2) : (expr3) expr2 değerlendirir expr1 TRUE değerlendirir, ve expr3 if {[(2) }] değerlendirir FALSE.

Bu şu anlama gelir: değeri "ise" (boş), ardından set "-" (tire), başka her ne ayarlanır.

Sadece bir okuma b:? C gibi «sonra b else if c».

Evet, başkalarının söylediklerini ama gerçekten kod okunabilirliği açısından tavsiye edilmez. Dikkatli kullanın ve durumu etrafında parantez olmadan kullanmayın.

$myvar = ($condition == TRUE) ? $valueIfTrue : $valueIfFalse;

yerine

if ($condition)
{
    $myvar = $valueIfTrue;
}
else
{
    $myvar = $valueIfFalse;
}

PHP "üçlü operatörü" demekte ısrar ediyor ne var - http://www.phpbuilder.com/manual/language.operators.comparison.php sözdizimi ve örnek için bkz.

Ayrıca, bu gibi "name" => $row['name'] == "" ?? "-" yapabilirsiniz

a == b yani? c a = b başka kullanım c doğru kullanımı ise