Üçlü Operatörü PHP'de "else" ifadesini kapatmadan kullanabilir misiniz? Denedim ve hatalar dönüyor. Google arama hiçbir şey üretmiyor, bu yüzden cevabın muhtemelen hayır olduğunu düşünüyorum. Sadece burada kontrol etmek istedim. Örneğin: $ test varsa, yalnızca $ new_variable değerini ayarlayacaktır. Şimdi, $ test ayarlanmamışsa $ new_variable için boş bir değişken döndürenÜçlü İşleç Kullanarak Else deyimini kullanmadan PHP
$new_variable = (isset($testing) ? $testing : "");
. Ayarlanmamışsa boş bir değişken istemiyorum, $ new_variable'ın yaratılmasını istemiyorum.
Ben$new_variable = (isset($testing) ? $testing);
çalıştı ve bu hataları döndü. Ben de
$new_variable = (isset($testing) ? $testing :);
çalıştı ve aynı zamanda hataları döndü. Ekli bir deyim olmadan Üçlü Operatörü kullanmanın bir yolu var mı, yoksa uzun yazı yazdım mı?
DÜZENLEME: Rizier123 tavsiyelerine uyarak ben NULL'A denklemin 'başka' bir bölümünü ayarlama çalıştı, ama yine de bir dizi için bir anahtar ekleme biter. Değer orada yok, ama anahtar, planlarımı mahvediyor. Lütfen daha fazla açıklamama izin verin.
kod formdan $ _POST değişkenler bir demet alıp sonra API yöntemi çağrıları için kullanılan bir stdClass parametreler için bunları kullanmak için gidiyor. API çağrısı için aynı değişkene uygulandıklarından, form değişkenlerinden bazıları mevcut olmayacaktır, ancak kullanıcı yalnızca birini seçebilir. Örnek olarak, seçtiğiniz öğeyi stdClass'a aktarılan ve diğer 2'si bulunmayan 3 öğeyi seçebilirsiniz.
bu çalıştı:$yes_this_test = "IDK";
$setforsure = "for sure";
$list = new stdClass;
$list->DefinitelySet = $setforsure;
$list->MaybeSet = (isset($yes_this_test) ? $yes_this_test : NULL);
$list->MaybeSet = (isset($testing) ? $testing : NULL);
print_r($list);
Ama (isset ($ testi) sonra gelir, çünkü belli ki MaybeSet null olarak alır (isset ($ yes_this_test) ve
stdClass Object ([DefinitelySet] => for sure [MaybeSet] =>)
döndürür
Kazandım $ _POST değişkenlerinin hangi sırayla geldiğini bilmem, bu yüzden listenin doğru sırada işlenmesini sağlayacak şekilde yapılamıyorum.
Artık bir şey yapabileceğimi biliyorum Bunları onlarca yazmak zorunda olduğu
if (isset($yes_this_test) {
$list->MaybeSet = $yes_this_test;
}
elseif (isset($testing)) {
$list->MaybeSet = $testing;
}
Ama orada umuyordum, mantık bu tür bir kısaltmadır oldu. If/elseif ifadeleri için kullanılan Üçlü Operatöre benzer bir operatör var mı?
Bir başka seçenek de, kaşlı ayraçlar olmadan if ifadesini kullanmaktır. Bir üçgene benzer bir çizgi üzerinde de olabilir. 'if (isset ($ testing)) $ new_variable = $ test;'. IMO Kıvırcık parantez olmadan hoşlanmam ama sadece mümkün olduğunu söylüyorum. IMO, NULL olarak NULL olarak ayarlamak için daha iyi olurdu, çünkü Nier ise eğer isset false değerini döndürür. 'isset ($ nullVar)' false döndürecektir. –
[Üçlü Operatörlerin olası kopyası. Tek taraflı bir eylem için mümkün mü?] (Http://stackoverflow.com/questions/14520949/ternary-operators-possible-for-a-one-sided-action) –